Como usar UTF-8 con Python
Sábado, 3 de Enero de 2009Hay dos tipos de string en Python: byte y Unicode. El string de tipo byte es una secuencia de bytes. Cuando hace falta Python usa el locale de la computadora para convertir los bytes en caracteres. En el sistema operativo Mac OS X, el locale por default es UTF-8, pero en el resto probablemente sea ASCII.
Esto crea un string de tipo byte:
byteString = “Hola! (en mi locale por default)”
y esto crea un string Unicode:
unicodeString = u”Hola mundo unicode!”
Como convertir un byte string a Unicode y viceversa:
s = “hola byte string”
u = unicode( s )
backToBytes = u.encode()
Este código usa el conjunto de caracteres por defecto para realizar las conversiones.
Sin embargo confiar en el locale no es una muy buena idea, ya que la aplicación no funciona si se conecta alguien de Japon desde su maquina local.
Lo mejor es hacer explicito el encoding del string:
s = “hola normal string”
u = unicode( s, “utf-8″ )
backToBytes = u.encode( “utf-8″ )
Ahora el byte string s será tratado como una secuencia de bytes UTF-8 bytes para crear el string unicode u.
Hasta la próxima