2016-03-26 8 views
3

Ich habe ein Smartphone. Auf diesem Smartphone habe ich einen mobilen Hotspot, im Wesentlichen ein tragbares WiFi-Netzwerk, das den Internetzugang meines Telefons an meinen Laptop leitet. Auf meinem Laptop habe ich Python 3 und die requests library. Hier werden Python und Anfragen verwendet, um google.com mit dem Hotspot meines Telefons zu erhalten. (Ergebnis ist genau das selbe unter Verwendung "echten wifi".)Wie wirkt sich mein mobiles Netzwerk auf die Codierung aus?

>>> 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' 

Gut! Alles läuft wie geplant.

Auch auf meinem Laptop habe ich Factor, und es hat eine einfach zu bedienende wgetter in der Standard-Bibliothek. Hier ist http-get arbeitet an einem "normalen" WiFi-Netzwerk.

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

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

Erfolg!

Nun, nein. http-get an meinem Handy-Hotspot:

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..." 

Uh.
Und es ist nicht nur Google. http-get ting Stack Overflow oder eine andere Website über das Netzwerk meines Telefons liefert ziemlich ähnliche Ergebnisse.

drucken möchten, in string:

enter image description here

...

Nein? Ah, nun, OK.


Der Faktor ist standardmäßig 100% UTF-8. ISO-8859 sollte in UTF-8 übersetzt werden können, und zwar, wenn das Internet meines Telefons nicht verwendet wird.

Ich weiß, dass mobile Dienstanbieter den Ruf haben, schlechte Dinge in den bereitgestellten Inhalt zu injizieren. Aber wenn die Kodierung die gleiche ist, und Python sie gleich behandelt, und Python sagt, sie haben die gleiche Kodierung ... was ist hier los?


Faktor ist HEAD. Python ist 3.5. Laptop ist Ubuntu 15.10, Android ist 5.1.etwas, und wahrscheinlich am wichtigsten, ist mein Mobilfunkanbieter StraightTalk.

Wie die Python-Demonstration zeigt, habe ich normalerweise keine Probleme mit dem Seiteninhalt.

+0

Ich denke unter dem Licht dessen, was das OP gefunden hat, ist es nicht off-topic.Nach der Antwort wird klar, dass ein "Werkzeug, das hauptsächlich zum Programmieren verwendet wird" (Faktor) involviert ist, da es damit zu tun hat, wie es mit gziped Anfragen behandelt wird. Es hat jetzt sogar einen Fehlerbericht! –

+0

@fedes. Ja, ich denke nicht, dass das auch nicht das Thema ist, aber es ist keine große Sache, da die Entwickler davon wissen: P – cat

Antwort

1

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

Ich glaube nicht an den Header zu suchen.

Die Antwort?

content-encoding: Accept-Encoding auf normalen WiFi.

content-encoding: gzip auf Hotspot.

Nun, wie mit Faktor entgzip ist eine andere Frage.

Verwandte Themen