如果我使用以下内容读取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
任何人都知道如何做到这一点?
答案 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。