Python UnicodeDecodeError:&x27;charmap';编解码器可以';t解码1010494位置的字节0x9d:字符映射到<;未定义>;

Python UnicodeDecodeError:&x27;charmap';编解码器可以';t解码1010494位置的字节0x9d:字符映射到<;未定义>;,python,unicode,text-files,decode,readfile,Python,Unicode,Text Files,Decode,Readfile,请告诉我这方面需要帮助: url ='https://www.sec.gov/Archives/edgar/data/1437750/0001477932-13-004416.txt' with open('file', 'wb') as f: f.write(requests.get('%s' % url).content) with open('file', 'r') as t: words= t.read() 上面给出了以下错误: return cod

请告诉我这方面需要帮助:

url ='https://www.sec.gov/Archives/edgar/data/1437750/0001477932-13-004416.txt'
with open('file', 'wb') as f:
    f.write(requests.get('%s' % url).content)
with open('file',  'r') as t:
            words=  t.read()
上面给出了以下错误:

return codecs.charmap_decode(input,self.errors,decoding_table)[0]  
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 1010494: character maps to < undefined>
返回编解码器.charmap\u解码(输入、自身错误、解码表)[0]
UnicodeDecodeError:“charmap”编解码器无法解码1010494位置的字节0x9d:字符映射到

谢谢大家!

为什么您要将文件作为二进制文件写入,然后将其作为unicode字符串读取?Python不知道如何对原始流中的某些字节进行解码,直到您告诉它要使用什么编解码器。由于在第一个命令中传输的文件不是utf-8编码的,因此在读取文件时,请尝试将文件解码为
拉丁语-1

with open('file',  'r', encoding='latin-1') as t:
    words =  t.read()

我也经历过同样的问题。当我试图读取文件时,我的一个字符串有一个双空格:“”。删除该双空间修复了0x9d问题

在什么样的ASCII字符集中0x9d有意义?它不是有效的Windows-1252。Python“latin-1”编解码器将其转换为Unicode 0x9D,即“操作系统命令”。[1]这没有什么意义。使用“latin-1”编解码器转换这样的文本不会使Python程序崩溃,但在Unicode中得到的是一个带有[009d]的框。用“拉丁语-1”进行转换只是为了解决这个问题。当它出现在英文文本中时,似乎是某种引号。但它不是Windows-1252的特殊引号之一。[1] 它不仅没有UTF-8编码,而且页面中似乎嵌入了二进制数据。您不应该试图将二进制数据读取为文本!使用
latin-1
编码是一种应该避免的黑客行为,除非你专门用它来清理别人的烂摊子,并且你真的知道自己在做什么。