gpt4 book ai didi

python - response.info().getencoding() 的实现在 urllib2 中被破坏了吗?

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:55 27 4
gpt4 key购买 nike

我希望在以下 python session 中 getencoding 的输出是“ISO-8859-1”:

>>> import urllib2
>>> response = urllib2.urlopen("http://www.google.com/")
>>> response.info().plist
['charset=ISO-8859-1']
>>> response.info().getencoding()
'7bit'

这是 python 版本 2.6('2.6 (r26:66714, Aug 17 2009, 16:01:07)\n[GCC 4.0.1 (Apple Inc. build 5484)]')。

最佳答案

好吧,你认为什么东西坏了?

我获得了 urllib 和 wget 的 ISO-8859-2(我目前在波兰)。我用 Firefox 获得了 UTF-8。这是因为我的 Firefox 告诉站点它接受 ISO-8859-1 和 UTF-8,而 wget 和 urllib2 什么也没说。相关的请求头是:

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

从中删除 UTF-8,您将不会获得 UTF-8,可通过 telnet 到端口 80 轻松测试。

Google.com 简单地(并且合理地)默认为 ISO-8859-1,google.pl 为 ISO-8859-2,我相信其他站点还有其他默认值。

我没有得到 wget、urllib2 或 telnet 的编码 header ,我猜 urllib2 然后假定为 7 位,这可能有点不合理,因为内容编码通常是 gzip 或什么都不是。

关于python - response.info().getencoding() 的实现在 urllib2 中被破坏了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1309233/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com