"for line in..." 导致 UnicodeDecodeError: 'utf-8' codec can't decode byte

新手上路,请多包涵

这是我的代码,

 for line in open('u.item'):
# Read each line

每当我运行此代码时,它都会出现以下错误:

UnicodeDecodeError:“utf-8”编解码器无法解码位置 2892 中的字节 0xe9:无效的继续字节

我试图解决这个问题并在 open() 中添加一个额外的参数。代码如下所示:

 for line in open('u.item', encoding='utf-8'):
# Read each line

但它又给出了同样的错误。那我该怎么办?

原文由 SujitS 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 528
2 个回答

正如 Mark Ransom 所建议的,我找到了解决该问题的正确编码。编码是 "ISO-8859-1" ,所以用 open("u.item", encoding="utf-8") 替换 --- open('u.item', encoding = "ISO-8859-1") 将解决问题。

原文由 SujitS 发布,翻译遵循 CC BY-SA 4.0 许可协议

以下也对我有用。 ISO 8859-1 将节省很多,主要是如果使用语音识别 API。

例子:

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

原文由 Ryoji Kuwae Neto 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题