Question

En utilisant Python je dois transférer non UTF-8 données codées (Maj de particulier) à JIS une URL via la chaîne de requête. Comment dois-je transférer les données? Citer? Encode en utf-8?

Merci

Était-ce utile?

La solution

paramètres de chaîne de requête sont à base d'octets. Alors que l'IRI à URI typées et des caractères non-ASCII utilisent généralement UTF-8, il n'y a rien qui vous oblige à envoyer ou recevoir vos propres paramètres dans ce codage.

Donc, pour Shift-JIS (en fait généralement CP932, l'extension Windows de ce codage):

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

En Python 3, vous le faites dans la même fonction de citation:

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

Autres conseils

Je ne sais pas ce que unicode a à voir avec cela, puisque la chaîne de requête est une chaîne d'octets. Vous pouvez utiliser les fonctions dans urllib pour citer des chaînes simples afin qu'ils puissent être transmis dans les chaînes de requête.

Par la »chaîne de requête« vous voulez dire HTTP GET comme dans http:/{URL}?data=XYZ?

Vous avez coder ce que jamais les données que vous avez via base64.b64encode en utilisant -_ comme caractère alternatif pour être sûr URL en option. Voir .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top