Problema codificación de caracteres

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Problema codificación de caracteres

Óscar Andrés López Paruma
Hola,

Tengo problemas codificando una URL desde la línea de comandos en Python.
En esencia, lo que necesito hacer es algo como esto:

>>> import urllib
>>> print urllib.urlencode({'foo' : raw_input('$ ')})
$ áéíóúñ

En un mac (y sería interesante verificar en un gnu/linux que esté
configurado con codificación utf-8), al ejecutar el anterior código se
imprime (correctamente) lo siguiente:

foo=%C3%A1%C3%A9%C3%AD%C3%B3%C3%BA%C3%B1

En windows, e imagino que es por problemas de codificación de caracteres
en la línea de comandos, imprime lo siguiente:

foo=%A0%82%A1%A2%A3%A4

El resultado de la URL codificada en windows es un montón de caracteres
incorrectos, la URL en la línea de comandos de mac sí equivale a la cadena
esperada, "áéíóúñ".

Qué puede ser? cómo arreglo este problema? ya llevo un rato dándole
vueltas y no doy con la solución. Gracias!

-Óscar.

_______________________________________________
Pythoneando...
Pycolombia mailing list
[hidden email]
http://listas.el-directorio.org/cgi-bin/mailman/listinfo/pycolombia
Reply | Threaded
Open this post in threaded view
|

Re: Problema codificación de caracteres

Óscar Andrés López Paruma
Ehh, ya tengo la respuesta. Stack Overflow salvó el día de nuevo! debí
esperar un poco antes de hacer cross-posting a la lista :$ . La solución:

print urllib.urlencode({'foo':raw_input('>
').decode('cp437').encode('utf8')})



_______________________________________________
Pythoneando...
Pycolombia mailing list
[hidden email]
http://listas.el-directorio.org/cgi-bin/mailman/listinfo/pycolombia