windows - write编码 - python中文亂碼




UnicodeDecodeError:'charmap'编解码器无法解码Y位置的字节X:字符映射到<undefined> (2)

作为@LennartRegebro的延伸回答:

如果你不知道它是什么编码,上面的解决方案不起作用(它不是utf8 ),你发现自己只是猜测 - 你可以使用在线工具来确定它是什么编码。 他们并不完美,但通常工作得很好。 在你想出编码之后,你应该可以使用上面的解决方案。

编辑:(复制从评论)

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

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

  1. 在底部的view.encoding()处输入字段,并希望获得最好的结果(我无法得到任何东西,但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-1UTF-8 。 由于0x90实际上并不代表Latin-1任何内容,所以UTF-8 (其中0x90是连续字节)更可能。

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

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




decode