Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 带请求的中断utf-8编码_Python 3.x_Python Requests_Unicode String - Fatal编程技术网

Python 3.x 带请求的中断utf-8编码

Python 3.x 带请求的中断utf-8编码,python-3.x,python-requests,unicode-string,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 = {"description":"Golden C\xc3\xa3\xc2\xa3o Mb Adulto 3kg F"} 如果我使用response.content response.

我使用请求从resp API获取数据。 问题是,当我尝试将响应转换为UTF-8时,会导致一些断字符,例如

如果我使用
response.text

response.content = {"description":"Golden Cã£o Mb Adulto 3kg F"} 
response.content = {"description":"Golden C\xc3\xa3\xc2\xa3o Mb Adulto 3kg F"}
如果我使用
response.content

response.content = {"description":"Golden Cã£o Mb Adulto 3kg F"} 
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')
我可以修复其中一些损坏的字符,但对于上面的示例,我得到了这个错误

{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"}

编辑:已解决
结果表明错误发生在服务器端。服务器在保存某些字符时损坏了它们

是的,那是因为错误地解码了传入的字节
\xc3\xa3\xc2\xa3
是一个非常奇怪的字节序列<代码>C3 A3是UTF-8,似乎是正确的。但是
c2a3
真的没有什么用处。奇怪。(好吧,它是,所以
请求的值。文本给你的是正确的,但是你说浏览器中没有磅符号的事实很奇怪。)你使用的URL是公开的吗,这样我就可以从我的角度测试它了?我想我已经修复了,在你的评论之后,我意识到第一个序列是我想要的字符,第二个是“垃圾”。第二个序列有时不被识别为UTF-8。因此,我忽略了它们。
response.text.encode('latin-1')。decode('utf8','ignore')
似乎可以工作。错误在服务器端,我的意思是,有多个条目“Golden Cão Mb Adulto 3kg F”“其中一个有着破碎的性格。当我说浏览器正在工作时,我看到的是错误的条目。好吧,我怀疑它可能是坏数据。那么,在客户端你可以做的事情就不多了。
请求
模块做了正确的事情。我补充了这个问题。Tks