“for line in...”导致 UnicodeDecodeError: 'utf-8' 编解码器无法解码字节
2013-10-31
1030400
这是我的代码,
for line in open('u.item'):
# Read each line
每当我运行此代码时,都会出现以下错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2892: invalid continuation byte
我尝试解决这个问题并在 open() 中添加一个额外参数。代码如下所示:
for line in open('u.item', encoding='utf-8'):
# Read each line
但它再次出现相同的错误。那我该怎么办?
3个回答
根据
Mark Ransom
的建议,我找到了解决该问题的正确编码。编码为
"ISO-8859-1"
,因此将
open("u.item", encoding="utf-8")
替换为
open('u.item', encoding = "ISO-8859-1")
将解决问题。
SujitS
2013-10-31
以下方法对我也有用。 ISO 8859-1 将节省很多,主要是在使用语音识别 API 时。
示例:
file = open('../Resources/' + filename, 'r', encoding="ISO-8859-1")
Ryoji Kuwae Neto
2017-10-26
您的文件实际上并不包含 UTF-8 编码数据;它包含其他编码。找出该编码并在
open
调用中使用它。
例如,在
Windows-1252
编码中,
0xe9
将是字符
é
。
Mark Ransom
2013-10-31