UnicodeDecodeError:'charmap'编解码器无法解码位置Y中的字节X:字符映射到

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnicodeDecodeError:'charmap'编解码器无法解码位置Y中的字节X:字符映射到相关的知识,希望对你有一定的参考价值。

我正在尝试使用填充了信息的文本文件来对Python 3程序进行一些操作。但是,在尝试读取文件时,我收到以下错误:

Traceback(最近一次调用最后一次): 文件“SCRIPT LOCATION”,第NUMBER行 text = file.read() 在解码中文件“C: Python31 lib encodings cp1252.py”,第23行 return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError:'charmap'编解码器无法解码位置2907500中的字节0x90:字符映射到<undefined>

如果有人能给我任何帮助试图解决这个问题,我将非常感激。

答案

有问题的文件没有使用CP1252编码。它正在使用另一种编码。你需要弄清楚哪一个。常见的是Latin-1UTF-8。由于0x90实际上并不意味着Latin-1中的任何内容,因此UTF-8(其中0x90是一个连续字节)更有可能。

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

file = open(filename, encoding="utf8")
另一答案

作为@LennartRegebro的扩展答案:

如果你不知道它是什么编码并且上面的解决方案不起作用(它不是utf8)你发现自己只是猜测 - 你可以使用online tools来识别它是什么编码。它们并不完美但通常工作得很好。在计算出编码后,您应该可以使用上面的解决方案。

编辑:(复制评论)

一个非常流行的文本编辑器Sublime Text有一个命令显示编码如果已设置...

  1. View - > Show Console(或Ctrl +`)

enter image description here

  1. 输入底部view.encoding()的字段并希望最好(除了Undefined我无法得到任何东西,但也许你会有更好的运气......)

enter image description here

另一答案

只是添加以防file = open(filename, encoding="utf8")不起作用尝试file = open(filename, errors='ignore')

以上是关于UnicodeDecodeError:'charmap'编解码器无法解码位置Y中的字节X:字符映射到的主要内容,如果未能解决你的问题,请参考以下文章

UnicodeDecodeError:'charmap'编解码器无法解码位置Y中的字节X:字符映射到

python在进交互UnicodeDecodeError: 'gbk' codec can't decode byte 0x99 in position 166?

python2 当中 遇到 UnicodeDecodeError UnicodeDecodeError: 'ascii' codec can't decode byte 0xe

exception2:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd7 in position 0: inval

cocos2d-x-3.0beta2创建项目遇到“UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in pos

UnicodeDecodeError: 'utf-8' codec can't decode byte