我正在从文件中读取一些数据..
但我观察到的有一些奇怪的角色;
'tamb\xc3\xa9m', 'f\xc3\xbcr','cari\xc3\xb1o'
我的文件读取代码非常标准:
with open(filename) as f:
for line in f:
print line
答案 0 :(得分:8)
您拥有UTF-8编码数据。您可以解码数据:
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解释器的字符串文字语法。 \xhh
十六进制代码用于可打印ASCII范围之外的字符。 list
或dict
等Python容器在打印时也会使用repr()
来显示其内容。
您可能希望了解Unicode以及它与Python的交互方式。参见: