我正在使用请求从resp API获取数据。 问题是,当我尝试将响应转换为UTF-8时,会导致一些损坏的字符,例如,
如果我使用response.text
,我会
response.content = {"description":"Golden Cã£o Mb Adulto 3kg F"}
如果我使用response.content
,我会
response.content = {"description":"Golden C\xc3\xa3\xc2\xa3o Mb Adulto 3kg F"}
我尝试在response.encoding = 'utf-8'
之前使用response.encoding = 'latin-1'
,response.text
和许多其他人更改请求编码。
我尝试了response.decode('utf-8')
和其他解码。在这种情况下,我有{"description":"Golden Cã£o Mb Adulto 3kg F"}
如果我使用,我在此回复中还有很多其他内容
response.text.encode('latin-1').decode('utf-8')
我可以修复其中一些破碎的caracteres但是对于上面的例子我得到了这个错误
{UnicodeDecodeError}'utf-8'编解码器无法解码字节...:无效的连续字节
我尝试了很多其他的东西,但我无法解决这个问题。我需要一些帮助。
修改 服务器的响应标头
{
'Content-Type': 'application/json',
'Vary': 'Accept-Encoding',
'Content-Encoding': 'gzip',
'Content-Length': '1603',
'Connection': 'close'
}
对于上面的例子,结果应该是
{"description":"Golden Cão Mb Adulto 3kg F"}
编辑:已解决 事实证明错误是在服务器端。保存时,服务器正在破坏某些字符。