从文本文件中读取Python编码问题

时间:2013-06-04 11:07:43

标签: python encoding python-2.7

我正在阅读一个包含单个词B\xc3\xa9zier的文本文件。

我希望将其转换为等效的解码utf-8格式,即Bézier并将其打印到控制台。

我的代码如下:

foo=open("test.txt")  
for line in foo.readlines():  
    for word in line.split():  
        print(word.decode('utf-8'))
foo.close()

输出是:

B\xc3\xa9zier

但是,如果我做这样的事情:

>>> print('B\xc3\xa9zier'.decode('utf-8'))

我得到了正确的输出:

Bézier

我无法弄清楚为什么会这样?

1 个答案:

答案 0 :(得分:6)

好像你在文件中有一个原始utf8转义字符串,请使用string_escape对其进行解码

with open('test.txt') as f:
    for line in f:
        for word in line.split():
            print(word.decode('string_escape').decode('utf-8'))


Bézier