Estoy tratando de codificar y almacenar, y decodificar argumentos en Python y perderme en algún lugar en el camino. Aquí están mis pasos:Codificación/decodificación URL con Python
1) Yo uso Google toolkit's gtm_stringByEscapingForURLArgument
para convertir un NSString correctamente para pasar a los argumentos HTTP.
2) En mi servidor (python), guardo estos argumentos de cadena como algo como u'1234567890-/:;()$&@".,?!\'[]{}#%^*+=_\\|~<>\u20ac\xa3\xa5\u2022.,?!\''
(tenga en cuenta que estas son las teclas estándar de un teclado iphone en la vista "123" y "# + =", \u
y \x
caracteres de estar allí algunos prefijos monetarios como libra, yen, etc.)
3) Tiene la palabra urllib.quote(myString,'')
en ese valor almacenado, presumiblemente para -escape% para su transporte al cliente para que el cliente puede unpercent escapar de ellos.
El resultado es que obtengo una excepción cuando intento registrar el resultado de% de escape. ¿Hay algún paso crucial que pase por alto que deba aplicarse al valor almacenado con el formato \ uy \ x para convertirlo correctamente para enviarlo a través de http?
Actualización: La sugerencia marcada como la siguiente respuesta funcionó para mí. Sin embargo, estoy proporcionando algunas actualizaciones para completar los comentarios a continuación.
La excepción que recibí citó un problema con \u20ac
. No sé si fue un problema con eso específicamente, en lugar del hecho de que era el primer carácter Unicode en la cadena.
Ese \u20ac
char es el unicode para el símbolo 'euro'. Básicamente encontré que tendría problemas con él a menos que use el método urllib2 quote
.
Proporcione los detalles de la excepción y un seguimiento si es posible. –
Parece que su cadena no es una cadena Unicode válida. Intenté simplemente imprimirlo y me da error de codificación para el carácter \ u20ac. –