8

file.readline()を使用して、Pythonでルーマニア語の単語を含むファイルを読んでいます。エンコーディングが原因で多くの文字に問題があります。

例 :

>>> a = "aberație"  #type 'str'
>>> a -> 'abera\xc8\x9bie'
>>> print sys.stdin.encoding
UTF-8

utf-8、cp500などでencode()を試しましたが、機能しません。

使用する必要のある正しい文字エンコードが見つかりませんか?

前もって感謝します。

編集:目的は、ファイルから単語を辞書に保存し、それを印刷するときに、「abera \ xc8 \x9bie」ではなくaberațieを取得することです。

4

1 に答える 1

15

あなたは何をしようとしているのですか?

これは一連のバイトです:

BYTES = 'abera\xc8\x9bie'

utf-8文字列「aberaşie」のエンコーディングを表す一連のバイトです。バイトをデコードして、Unicode 文字列を取得します。

>>> BYTES 
'abera\xc8\x9bie'
>>> print BYTES 
aberație
>>> abberation = BYTES.decode('utf-8')
>>> abberation 
u'abera\u021bie'
>>> print abberation 
aberație

Unicode 文字列をファイルに保存する場合は、選択した特定のバイト形式にエンコードする必要があります。

>>> abberation.encode('utf-8')
'abera\xc8\x9bie'
>>> abberation.encode('utf-16')
'\xff\xfea\x00b\x00e\x00r\x00a\x00\x1b\x02i\x00e\x00'
于 2011-06-30T21:26:13.160 に答える