UnicodeDecodeError:“charmap”编解码器无法解码位置 Y 中的字节 X:字符映射到 <undefined>

新手上路,请多包涵

我试图让一个 Python 3 程序对一个充满信息的文本文件进行一些操作。但是,当尝试读取文件时,出现以下错误:

 Traceback (most recent call last):
   File "SCRIPT LOCATION", line NUMBER, in <module>
     text = file.read()
   File "C:\Python31\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 0x90 in position 2907500: character maps to `<undefined>`

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

阅读 1.3k
2 个回答

有问题的文件未使用 CP1252 编码。它正在使用另一种编码。你必须自己弄清楚哪一个。常见的是 Latin-1UTF-8 。由于 0x90 实际上并不意味着 Latin-1UTF-8 (其中 0x90 是连续字节)更有可能。

您在打开文件时指定编码:

 file = open(filename, encoding="utf8")

原文由 Lennart Regebro 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果 file = open(filename, encoding="utf-8") 不起作用,请尝试

file = open(filename, errors="ignore") ,如果你想删除不需要的字符。 ( 文档

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

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