comment ouvrir une URL avec les non-8 arguments utf
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
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.