首页 文章

UnicodeDecodeError:'charmap' codec无法解码位置Y的字节X:字符映射到<undefined>

提问于
浏览
283

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

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

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

3 回答

  • 496

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

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

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

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

    一切都很好

  • 7

    作为@LennartRegebro的扩展答案:

    如果你不能't tell what encoding it is and solution above does not work (it'并且你发现自己只是猜测 - 你可以使用online tools来识别它是什么编码 . 它们并不完美,但通常工作得很好 . 找出编码后,您应该可以使用上面的解决方案 .

    EDIT: (复制自评论)

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

    • 转到 View - > Show Console (或Ctrl`)

    enter image description here

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

    enter image description here

相关问题