JSON的UnicodeDecodeError(UTF-8)

时间:2017-11-06 17:57:45

标签: python

BLUF:为什么decode()对象上的bytes方法无法解码ç

我收到了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字符?我没有正确地将它写入文件吗?

1 个答案:

答案 0 :(得分:2)

如果您遇到编码/解码问题,请查看UTF-8 Encoding Debugging Chart

如果您在图表中查找Windows 1252代码点0xE7,则会发现预期字符为ç,表明编码为CP1252