"for line in...结果导致UnicodeDecodeError: 'utf-8'编解码无法完成"

2024-04-25 15:13:48 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码

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

但同样的错误。 那我该怎么办!请帮忙。


Tags: 代码in密码forread错误lineopen
3条回答

您的文件实际上不包含utf-8编码的数据,它包含一些其他编码。找出编码是什么,并在open调用中使用它。

例如,在Windows-1252编码中,0xe9将是字符é

对我来说,ISO 8859-1也很管用,哈哈哈,如果使用语音识别API

示例:

file = open('../Resources/' + filename, 'r', encoding="ISO-8859-1");

根据Mark Ransom的建议,我找到了解决这个问题的正确编码。编码是“ISO-8859-1”,因此用open('u.item', encoding = "ISO-8859-1")替换open("u.item", encoding="utf-8")将解决此问题。

相关问题 更多 >