Python 字符串中的奇怪字符

Python 字符串中的奇怪字符,python,Python,我正在从文件中读取一些数据 但我观察到一些奇怪的人物,比如: 'tamb\xc3\xa9m', 'f\xc3\xbcr','cari\xc3\xb1o' 我的文件读取代码相当标准: with open(filename) as f: for line in f: print line 您有UTF-8编码的数据。您可以解码数据: with open(filename) as f: for line in f: print line.decode('

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

但我观察到一些奇怪的人物,比如:

'tamb\xc3\xa9m', 'f\xc3\xbcr','cari\xc3\xb1o'
我的文件读取代码相当标准:

 with open(filename) as f:
    for line in f:
        print line

您有UTF-8编码的数据。您可以解码数据:

with open(filename) as f:
   for line in f:
       print line.decode('utf8')
或者在阅读以下内容时,使用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交互。见:

  • 乔尔斯波尔斯基

  • 内德·巴奇尔德