Python:Unicode和" \ xe2 \ x80 \ x99"让我吵了

时间:2017-07-01 10:48:45

标签: python unicode character-encoding

所以我有一个来自Google Docs的.txt文件,其中包含来自David Foster Wallace" Oblivion"的一些内容。使用:

with open("oblivion.txt", "r", 0) as bookFile:
    wordList = []
    for line in bookFile:
        wordList.append(line)

并返回&打印wordList我得到:

"surgery on the crow\xe2\x80\x99s feet around her eyes." 

(它会截断很多文本)。但是,如果不是附加wordList,我只需

for line in bookFile:
    print line
一切都很好! .read()文件也是如此 - 生成的str没有疯狂的字节表示,但是我不能按照我想要的方式操作它。

我在哪里.encode()或.decode()或者什么? 使用Python 2因为3给了我一些I / O缓冲区错误。谢谢。

2 个答案:

答案 0 :(得分:9)

使用open encoding作为utf-8

with open("oblivion.txt", "r", encoding='utf-8') as bookFile:
    wordList = bookFile.readlines()

答案 1 :(得分:0)

如果您不熟悉Python 2,并且想使用Rahul的答案

import io
with io.open("oblivion.txt", "r", encoding='utf-8') as bookFile:
    wordList = bookFile.readlines()