通过cp1252强制UTF-8(Python3)

时间:2016-08-08 15:47:49

标签: encoding python-3.5

我已经编写了一些使用Biopython Entrez包装器的代码。代码在我以前的Win10笔记本电脑(Python 3.5.1)上运行良好,但我只是将代码移植到一台新的Win10笔记本电脑上,每个软件包都安装了相同版本并安装了Python,我现在得到了一个解码错误。

回溯错误导致获取文本的函数 - 当它应该使用UTF-8时,它尝试使用cp1252解码文本。我知道已经提出了类似的问题,但没有人处理过这个问题(在我的案例中是Biopython)。在Python / lib中复制UTF-8编码文件并将其重命名为cp1252.py可以解决问题,但这显然不是长期解决方案。

File "C:\Users\arjun\AppData\Local\Programs\Python\Python35-32\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]

UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 21715: character maps to <undefined>

1 个答案:

答案 0 :(得分:1)

如果您使用的是Python 3.x(https://docs.python.org/2/library/io.html#io.open),请使用io模块进行阅读。 默认情况下,它将使用在其运行平台上指定的编码。您也可以按照文档中的说明指定自己的编码。