-2

以下を使用してUnicodeファイルを読み取った場合:

f = open(r'file.txt','rU')
raw = f.read()

ファイルを拡張ASCIIとして読み取るにはどうすればよいですか。つまり、\ xc3 \ xaaをêに正しく変換し、表示できないすべての文字をデフォルトの文字に変換します(たとえば?)。

私も次のものを持っています:

# Create a file called sitecustomize.py in c:\python27\Lib\site-packages.
import sys
sys.setdefaultencoding('iso-8859-1')  

変更する必要があるかどうかはわかりません。

何らかの理由で、私はêをPythonコンソールに貼り付けることができません(Windowsで行います)。

>>> s = u'La Pe\xf1a'
>>> print s
La Peña

誰かがこれを行う方法を知っていますか?

4

1 に答える 1

1

python2で

import codecs
f = codecs.open('file.txt','rU',encoding='utf8')

py3だけで

f = open('file.txt','rU',encoding='utf8')

混乱を解消するために、「ユニコードファイル」のようなものはありません。Unicodeは数学的な抽象概念であり、ファイルはディスク上のバイトです。これらのバイトをUnicodeコードポイントの内部メモリ表現に変換するために、Pythonはそれらを解釈する方法を知る必要があります。この解釈は「エンコーディング」と呼ばれ、投稿か​​らは「utf8」を使用しているように見えます。だからあなたはそれをPythonに伝えなければなりません。

于 2013-01-15T20:37:30.740 に答える