如何读取扩展ascii的unicode文件

时间:2013-01-15 20:20:59

标签: python unicode

如果我使用以下内容读取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

任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:1)

在python2中

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

只是

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

为了清除混乱,没有“unicode文件”这样的东西。 Unicode是一种数学抽象,文件是光盘上的字节。为了将这些字节转换为unicode代码点的内部存储器表示,python需要知道如何解释它们。这种解释称为“编码”,从您的帖子中您似乎使用“utf8”。所以你必须告诉python。