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>
如果有人可以给我任何帮助,试图解决这个问题,我将非常感激。
谢谢!
有问题的文件没有使用CP1252
编码。 它使用另一种编码。 哪一个你必须弄清楚自己。 常见的有Latin-1
和UTF-8
。 由于0x90实际上并不意味着Latin-1
任何内容,所以UTF-8
(其中0x90是继续字节)更有可能。
您在打开文件时指定编码:
file = open(filename, encoding="utf8")
作为@LennartRegebro的扩展回答:
如果你不知道它是什么编码,上面的解决scheme是行不通的(这不是utf8
),你发现自己只是猜测 – 有在线工具 ,你可以用来确定是什么编码。 他们并不完美,但通常工作得很好。 在你想出编码之后,你应该可以使用上面的解决scheme。
编辑:(复制从评论)
一个非常stream行的文本编辑器Sublime Text
有一个命令来显示编码,如果它已被设置…
- 转到
View
– >Show Console
(或Ctrl + ` )
- 在底部
view.encoding()
input字段,并希望最好(我不能得到任何东西,但Undefined
但也许你会有更好的运气…)