当前位置: 首页 > 面试题库 >

python request.get()返回的解码文本不正确,而不是UTF-8?

贺刚毅
2023-03-14
问题内容

content-type服务器的为时'Content-Type:text/html'requests.get()返回编码错误的数据

但是,如果我们将内容类型显式指定为'Content-Type:text/html; charset=utf-8',它将返回正确编码的数据。

另外,当我们使用时urllib.urlopen(),它会返回正确编码的数据。

有人注意到过吗?为什么会这样requests.get()表现?


问题答案:

从请求文档:

发出请求时,请求会根据HTTP标头对响应的编码进行有根据的猜测。访问r.text时,将使用Requests猜测的文本编码。您可以使用r.encoding属性来找出请求所使用的编码,并对其进行更改。

>>> r.encoding
'utf-8'
>>> r.encoding = 'ISO-8859-1'

检查用于页面的编码请求,如果不是正确的编码请求,请尝试将其强制为您需要的编码请求。

关于之间的差异requestsurllib.urlopen-他们可能用不同的方式来猜测编码。就这样。



 类似资料:
  • 问题内容: def size_of_dir(dirname): print(“Size of directory: “) print(os.path.getsize(dirname)) 是有问题的代码。dirname是一个目录,其中包含 130个 文件,每个文件约 1kb 。当我调用此函数时,它返回 4624 ,这 不是 目录的大小…为什么? 问题答案: 此值(4624B)代表的大小 文件 是 描

  • 问题内容: 有什么方法可以用编码UTF-8而不是Unicode 返回PHP ? 并没有解决。 结果: 预期结果: 问题答案: 并且是编写相同JSON文档的不同方法;JSON解码器将解码Unicode转义。 在php 5.4+中,php 确实可以选择纯输出。在较早的php版本上,您可以推出自己的不对非ASCII字符进行编码的 JSON编码器,或者使用Pear的 JSON编码器并将第349行删除为43

  • 问题内容: 有什么方法可以返回UTF-8编码而不是Unicode的PHP 吗? 并没有解决。 结果: 预期结果: 问题答案: 并且是编写相同JSON文档的不同方法;JSON解码器将解码Unicode转义。 在php 5.4+中,php的确可以选择普通输出。在较早的php版本上,您可以推出自己的不对非ASCII字符进行编码的JSON编码器,或者使用Pear的JSON编码器并将第349行删除为433。

  • 编辑问题以包括所需的行为、特定问题或错误,以及重现问题所需的最短代码。这将有助于其他人回答这个问题。 代码不返回值,而是返回“?”。编译时我没有遇到任何错误。请协助。 代码需要返回需要支付的剩余金额。输出代码1代码2代码3代码4

  • 问题内容: 我正在使用Javascript 函数解码base64编码的字符串(特别是来自GitHubAPI的base64编码的内容)。问题是我回来了ASCII编码的字符(而不是)。如何正确处理传入的以base64编码的流,以便将其解码为utf-8? 问题答案: 此问题: “ Unicode问题”由于s是16位编码的字符串,因此在大多数浏览器中,如果字符超出8位字节的范围(0x00〜0xFF),则调