我的移动网络对编码的影响是什么?

时间:2016-03-26 00:23:34

标签: python encoding factor-lang

我有一部智能手机。在这款智能手机上,我有一个移动热点,基本上是一个便携式WiFi网络,可以将我的手机上网连接到我的笔记本电脑上。

在我的笔记本电脑上,我有Python 3和requests library。这里使用Python和请求获取google.com,使用我的手机的热点。 (使用“真正的wifi”结果完全相同。)

>>> x = requests.get("http://google.com")
>>> x.apparent_encoding; x[:100]
'ISO-8859-2'
'<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"><head><meta content'

好!一切都按计划进行。

同样在我的笔记本电脑上,我是因子,它在标准库中有一个易于使用的wgetter。这是http-get处理“普通”WiFi网络。

IN: scratchpad "http://google.com" http-get nip

--- Data stack:
"<!doctype html><html itemscope=\"\" itemtype=\"http://schema.org..."

成功!

嗯,不。 http-get在我手机的热点上:

IN: scratchpad "http://google.com" http-get nip

--- Data stack:
"\x1f\b\0\0\0\0\0\0\x03Å<ëzÛ¶ÿÏSÐH+K+\"u\x17eÚ&iâÓ¤Ik§i7Íú\x03IHbÄIʲ#ë]öQw\x06\0..."

呃。这不仅仅是谷歌。 http-get堆栈溢出或我手机网络上的任何其他网站都会产生相似的结果。

打印该字符串:

enter image description here

...

没有?啊,好吧,好的。

默认情况下,因子为100%UTF-8。 ISO-8859应该可以转换为UTF-8,事实上,它是在不使用我的手机的互联网时。

我知道移动服务提供商的声誉是将Bad Things注入所提供的内容。但是如果编码是相同的,并且Python对它们的处理方式相同,那么Python说它们具有相同的编码......这里发生了什么?

因素为HEAD。 Python是3.5。笔记本电脑是Ubuntu 15.10,Android是5.1.something,可能最重要的是,我的移动服务提供商是StraightTalk。

正如Python演示所示,我通常不会遇到页面内容问题。

1 个答案:

答案 0 :(得分:1)

https://github.com/factor/factor/issues/1589

我没想过要查看标题。

答案?

普通WiFi上的

content-encoding: Accept-Encoding

热点上的

content-encoding: gzip

现在如何使用Factor进行ungzip是另一个问题。