Frage

Python muß ich nicht utf-8-codierte Daten übertragen (insbesondere shift-jis) zu einer URL über den Query-String. Wie soll ich die Daten übertragen? Zitiere es? Encode in utf-8?

Danke

War es hilfreich?

Lösung

Abfrage-String-Parameter sind Byte-basiert. Während IRI-to-URI und typisierten Nicht-ASCII-Zeichen der Regel verwenden UTF-8, gibt es Ihnen nichts zwingen, eigene Parameter in dieser Codierung zu senden oder empfangen.

Also für Shift-JIS (eigentlich typisch cp932, die Windows-Erweiterung dieser Codierung):

foo= u'\u65E5\u672C\u8A9E' # 日本語
url= 'http://www.example.jp/something?foo='+urllib.quote(foo.encode('cp932'))

In Python 3 Sie tun es in der Angebotsfunktion selbst:

foo= '\u65E5\u672C\u8A9E'
url= 'http://www.example.jp/something?foo='+urllib.parse.quote(foo, encoding= 'cp932')

Andere Tipps

Ich weiß nicht, was Unicode hat damit zu tun, da der Abfrage-String eine Folge von Bytes ist. Sie können die Angabe Funktionen in urllib blanke Saiten zu zitieren, so dass sie weitergegeben werden können in Query-Strings.

Durch die »Query-String« Sie meinen HTTP GET wie in http:/{URL}?data=XYZ?

Sie haben kodieren, was auch immer Daten, die Sie über base64.b64encode haben -_ als alternative Zeichen mit URL sicher als Option zu sein. Siehe hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top