1

我正在阅读一个包含一个单词的文本文件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

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

4

1 回答 1

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
于 2013-06-04T11:11:18.813 回答