unicode

Chema Cortes pych3m4 en gmail.com
Mar Nov 7 01:16:14 CET 2006


El 2006/11/7, José Jachuf <jjachuf en gmail.com> escribió:

> siguiendo con el tema de palabras con tilde, la sugerencia de tratarla
> como unicode fue satisfactoria. El problema que tengo ahora es que no se
> como pasar una cadena ascii contenida en una variable a unicode.
>
> s = u"Hola Mundo!" #esto esta claro

El problema está justamente aquí. Parece claro, pero hay que pensar
mejor lo que significa. Estás codificando una cadena unicode desde la
codificación por defecto de tu sistema (o de la codificación explícita
que hayas dado a tu fichero de código, o del
"sys.getdefaultencoding()" si has tenido éxito al cambiar la
codificación por defecto antes de empezar).


> pero si x = "Hola Mundo!"
> cómo hago para que s sea igual a x pero unicode.
>
> Probé con s = unicode(x),
> pero si x contiene caracteres como la ñ se produce un error.

Simplemente, tienes que decirle al instanciador de unicode la
codificación de la cadena que le estás pasando:

s=unicode(x,"iso-8859-15")  #por ejemplo

Para ficheros de código, es más cómodo indicar la codificación con el
comentario "coding" al principio del fichero.




Más información sobre la lista de distribución Python-es