[Programación]dudita python
Ernesto Savoretti
esavoretti en gmail.com
Vie Mar 5 20:46:43 ART 2010
El día 5 de marzo de 2010 20:21, Emiliano Nuñez
<nunez.emiliano en gmail.com> escribió:
> Alguien me explica por qué imprime diferente lo siguiente?:
>
> 1 - >>> print urllib.unquote("file://NI%C3%91A PASTORI")
> file://NIÑA PASTORI
>
>
> 2- >>> urllib.unquote("file://NI%C3%91A PASTORI")
> 'file://NI\xc3\x91A PASTORI'
En el primer caso, lo que te aparece en pantalla es la salida de la
función print, que sabe como representar en pantalla (de acuerdo al
encoding de tu terminal. ) los caracteres no ascii (ord > 127) que
estén embebidos en tu objeto, que en este caso es un string.
Hint: probá a cambiar el encoding de tu terminal y fijate que
probablemente lo que te aparezca en pantalla sea distinto
En el segundo caso, estás viendo la representación "cruda" del objeto,
podríamos decir lo que en realidad "es", los bytes que lo componen..
>
> Lo que necesito y guardar en una variable la salida del caso 1.
>
Lo que guardás/serializás es el string en sí mismo, no "cómo luce".
Cómo lo muestres cuando después lo vuelvas a usar, vuelve a ser una
cuestión de representación.
Sugerencia: pegale una miradita en la doc de python al manejo de
unicode. (O a unicode en general, independientemente de Python)
Saludos.
Ernesto Savoretti
Más información sobre la lista de distribución Programacion