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

2022-09-05 01:19:13

我试图让一个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>`  

答案 1

有问题的文件未使用编码。它使用另一种编码。你必须自己弄清楚哪一个。常见的是 和 。由于 0x90 实际上并不表示 任何含义,因此 (其中 0x90 是一个延续字节)更有可能。CP1252Latin-1UTF-8Latin-1UTF-8

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

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

答案 2

如果不起作用,请尝试
,如果要删除不需要的字符。(文档file = open(filename, encoding="utf-8")file = open(filename, errors="ignore"))