我正在从文件中读取一些数据...
但是我注意到有一些奇怪的字符,比如:
'tamb\xc3\xa9m', 'f\xc3\xbcr','cari\xc3\xb1o'
我的文件读取代码非常标准:
with open(filename) as f:
for line in f:
print line
我正在从文件中读取一些数据...
但是我注意到有一些奇怪的字符,比如:
'tamb\xc3\xa9m', 'f\xc3\xbcr','cari\xc3\xb1o'
我的文件读取代码非常标准:
with open(filename) as f:
for line in f:
print line
with open(filename) as f:
for line in f:
print line.decode('utf8')
io.open()
函数,让Python在读取时为您解码内容:import io
with io.open(filename, encoding='utf8') as f:
for line in f:
print line
您的数据,已解码:
>>> print 'tamb\xc3\xa9m'.decode('utf8')
também
>>> print 'f\xc3\xbcr'.decode('utf8')
für
>>> print 'cari\xc3\xb1o'.decode('utf8')
cariño
你似乎打印了字符串 表示 (repr()
函数的输出),它生成适合粘贴回Python解释器的字符串文字语法。在可打印ASCII范围之外的字符使用十六进制编码\xhh
。当打印时,Python容器(例如list
或dict
)也会使用repr()
显示其内容。
你可能想要了解Unicode以及它如何与Python交互。请参阅:
每个软件开发人员绝对必须知道的关于Unicode和字符集的绝对最低限度(没有任何借口!) by Joel Spolsky
实用的Unicode by Ned Batchelder