Python での文字のエンコードに苦労しています。特殊言語文字でいっぱいのウェブサイトから記事を取得するスクリプトがあり、一般的な単語を含む外部ファイル、txt
保存されutf-8
、特殊文字を含む単語を含むファイルを開いています。エンコーディングを設定したいコードの一部は次のようになります。
def getArticleText(webtext):
articletext = ""
soup = BeautifulSoup(webtext)
for tag in soup.find_all("div", {"class":"dr_article"}):
for element in tag.find_all("p"):
articletext += element.contents[0]
return articletext
def getArticle(url):
htmltext = gethtml.getHtmlText(url)
return getArticleText(htmltext)
def getKeywords(articletext):
common = open("word_rank/comon.txt").read().split('\n')
word_dict = {}
word_list = articletext.lower().split()
for word in word_list:
if word not in common :
if word not in word_dict:
word_dict[word] = 1
if word in word_dict:
word_dict[word] += 1
print sorted(word_dict.items(),key=lambda(k,v):(v,k),reverse=True)
今、私はその全体の印刷に問題はありませんarticletext
。これらの特殊文字を正しい方法で出力します。
私の問題は、定義で定義されたキーワードがgetKeywords
、例のようにそのように出力されることです:
(u'\u0161elteru', 2), (u'\u010ditateljice', 2),
(u'\u017eeli,', 2), (u'\u0161tekat', 2),
等々...
適切な方法で単語を表示するように、そのキーワードのエンコーディングを設定するにはどうすればよいですか?