Les paramètres de chaîne de requête sont basés sur des octets. Alors que les caractères IRI vers URI et les caractères non ASCII typés utiliseront typiquement UTF-8, rien ne vous oblige à envoyer ou à recevoir vos propres paramètres dans cet encodage.
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')
unicode n'est pas un encodage, donc tous les urls ont des arguments non-unicode. Je présume que vous voulez dire non-utf-8. –
merci pour la correction - mis à jour – hoju