用于JSON的UnicodeDecodeError(UTF8)

2024-10-02 18:16:20 发布

您现在位置:Python中文网/ 问答频道 /正文

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字符?我是否也没有正确地将其写入文件?在


Tags: 文件对象方法readbytescontentconn解码