-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 中的 dos)中,我可以这样做:

>>> 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 是一种数学抽象,文件是磁盘上的字节。为了将这些字节转换为 unicode 代码点的内部存储器表示,python 需要知道如何解释它们。这种解释称为“编码”,从您的帖子中您似乎使用“utf8”。所以你必须告诉python。

于 2013-01-15T20:37:30.740 回答