2017-09-07 10 views
0

日本語の文字を含むと思われるthis dictionary fileを使用しますが、なんらかの理由で"ä¹™ 勹 月 ç”° 亀"のような意味のない文字が表示されます。未知の文字列をUnicodeに変換する - Python

ファイル状態の導入:今使用中 」符号化方式は、もはやJIS x 0212ためJIS x 208と3バイトのためEUC-JPと便利2バイトであり、このファイルのエンコーディングは、現在UTF-8であり、そしてなど。 Unicodeを正しく処理するためには、ソフトウェアが固定長バイトに依存していないことが必要です。エンコード方法の変更の主な理由は、標準Unixコードで標準漢字JIS x 0213が定義されていないことですそれ以前の日本語の符号化方式(EUC-JP)。 "

私は、Python 3を使用して、それを復号化するために、成功せずにしようとした:

unknown_string = "𪚲 : ä¹™ 勹 月 ç”° 亀" decoded_string = unknown_string.decode('unicode_escape').encode('latin-1').decode('utf8') print(decoded_string) (印刷𪚲での結果:A 1™å<äºの€°C「を朹)

unknown_string = "𪚲 : ä¹™ 勹 月 ç”° 亀" decoded_string = unknown_string.encode('latin1').decode('utf-8') print(decoded_string) UnicodeEncodeError: 'latin-1' codec can't encode character '\u0161' in position 2: ordinal not in range(256)で結果)

また、バイトを見てみましたが、接続が見えません。たとえば、化成の16進数値は\xE5\x8C\x96ですが、ファイル内で値が\xC3\xA5\xC5\x92\xE2\x80\x93のåŒ-に置き換えられます。

元の日本語文字はどのように取得できますか?

+1

試したコードの一部を投稿してください。 – Mitiku

答えて

0

あなたは辞書を準備するthis file from jpnetkitを使用することができます。

krad = Kradfile() 
krad.get_kradfile() 
kanji_dict = krad.prepare_radikals() 
for w in kanji_dict[u'㔟']: 
    print w 
# 丶 力 九 生 

あなたは最初から解析を行いたい場合は、切れ目のないバージョンを取得するには、このlinkを確認することができます。

またはダウンロードして解凍してください。私はその理由は、リンクをダウンロードして、ブラウザで開くのではないということだと思います。ブラウザがこのgzファイルを開くと、文字セットは認識されず、意味のない文字が表示されます。

+0

ありがとうございます! どのようにkradfileの専門家がこの質問を見つけることができましたか?私は驚いている! –

関連する問題