字符串中出现奇怪的字符

3

我正在从文件中读取一些数据...

但是我注意到有一些奇怪的字符,比如:

'tamb\xc3\xa9m', 'f\xc3\xbcr','cari\xc3\xb1o'

我的文件读取代码非常标准:

 with open(filename) as f:
    for line in f:
        print line
1个回答

11
你有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解释器的字符串文字语法。在可打印ASCII范围之外的字符使用十六进制编码\xhh。当打印时,Python容器(例如listdict)也会使用repr()显示其内容。

你可能想要了解Unicode以及它如何与Python交互。请参阅:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接