BLUF:为什么bytes
对象上的decode()
方法无法解码ç
?在
我收到了UnicodeDecodeError: 'utf-8' codec can't decode by 0xe7 in position....
。在跟踪该字符时,它就是ç
字符。所以当我从服务器读取响应时:
conn = http.client.HTTPConnection(host = 'something.com')
conn.request('GET', url = '/some/json')
resp = conn.getresponse()
content = resp.read().decode() # throws error
我无法获取内容。如果我只做content = resp.read()
它是成功的,我可以使用wb
写入文件,但是不管{0xE7
替换。即使我用Notepad++打开文件并将编码设置为UTF-8,字符也只显示为十六进制版本。在
为什么我不能从HTTPResponse解码这个UTF-8字符?我是否也没有正确地将其写入文件?在
当您在编码/解码方面遇到问题时,您应该看看UTF-8 Encoding Debugging Chart。在
如果您在图表中查找
Windows 1252
代码点0xE7
,您会发现预期的字符是ç
,表示编码是CP1252
。在相关问题 更多 >
编程相关推荐