J'essaie de coder, de stocker et de décoder des arguments en Python et je m'égare quelque part en chemin. Voici mes étapes :
1) J'utilise la boîte à outils Google. gtm_stringByEscapingForURLArgument
pour convertir une NSString correctement pour la passer dans les arguments HTTP.
2) Sur mon serveur (python), je stocke ces arguments sous la forme de quelque chose comme u'1234567890-/:;()$&@".,?!\'[]{}#%^*+=_\\|~<>\u20ac\xa3\xa5\u2022.,?!\''
(notez qu'il s'agit des touches standard d'un clavier d'iphone dans la vue "123" et dans la vue "#+=", les touches \u
et \x
les caractères étant des préfixes monétaires comme la livre, le yen, etc.)
3) J'appelle urllib.quote(myString,'')
sur cette valeur stockée, vraisemblablement pour les %-échapper pour le transport vers le client afin que le client puisse les dé-échapper.
Le résultat est que j'obtiens une exception lorsque j'essaie d'enregistrer le résultat de l'échappement des %. Y a-t-il une étape cruciale que j'ai négligée et qui doit être appliquée à la valeur stockée avec l'attribut \u et \x afin de le convertir correctement pour l'envoyer par http ?
Mise à jour : La suggestion marquée comme la réponse ci-dessous a fonctionné pour moi. Je fournis quelques mises à jour pour répondre aux commentaires ci-dessous pour être complet, cependant.
L'exception que j'ai reçue concernait un problème avec \u20ac
. Je ne sais pas s'il s'agissait d'un problème spécifique, plutôt que du fait que c'était le premier caractère unicode de la chaîne.
Que \u20ac
char est l'unicode du symbole "euro". J'ai constaté que j'avais des problèmes avec ce symbole à moins d'utiliser l'urllib2. quote
méthode.