Sto cercando di codificare e archiviare e decodificare gli argomenti in Python e di perdersi da qualche parte lungo il percorso. Ecco i miei passi:Codifica/decodifica URL con Python
1) Io uso google toolkit's gtm_stringByEscapingForURLArgument
per convertire correttamente un NSString per passare agli argomenti HTTP.
2) Sul mio server (python), memorizzo questi argomenti di stringa come qualcosa come u'1234567890-/:;()$&@".,?!\'[]{}#%^*+=_\\|~<>\u20ac\xa3\xa5\u2022.,?!\''
(nota che questi sono i tasti standard su una tastiera iphone nella vista "123" e la vista "# + =", la \u
e \x
caratteri a che vi sia alcuni prefissi monetarie come sterlina, yen, ecc)
3) che io chiamo urllib.quote(myString,'')
su quel valore memorizzato, presumibilmente per% -escape loro per il trasporto al cliente in modo che il cliente possa unpercent loro fuga.
Il risultato è che sto ricevendo un'eccezione quando provo a registrare il risultato di% escape. C'è qualche passo cruciale che sto trascurando che deve essere applicato al valore memorizzato con il formato \ u e \ x al fine di convertirlo correttamente per l'invio su http?
Aggiornamento: il suggerimento contrassegnato come la risposta di seguito ha funzionato per me. Sto fornendo alcuni aggiornamenti per affrontare i commenti qui sotto per essere completo, però.
L'eccezione che ho ricevuto ha citato un problema con \u20ac
. Non so se sia stato un problema specifico, piuttosto che il fatto che fosse il primo carattere unicode nella stringa.
Che il carattere \u20ac
è l'unicode per il simbolo "euro". Fondamentalmente ho trovato che avrei avuto problemi con esso a meno che non ho usato il metodo urllib2 quote
.
Fornire i dettagli di eccezione e una traccia, se possibile. –
Sembra che la stringa non sia una stringa unicode valida. Ho provato a stamparlo semplicemente e mi dà errore di codifica per il carattere di \ u20ac. –