请求中断的utf-8编码

时间:2017-06-09 14:19:11

标签: python-3.x python-requests unicode-string

我正在使用请求从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"}

编辑:已解决 事实证明错误是在服务器端。保存时,服务器正在破坏某些字符。

0 个答案:

没有答案