sábado, 24 de enero de 2015

Codificación del código fuente

Es posible utilizar una codificación distinta a ASCII en el código fuente de Python. La mejor forma de hacerlo es poner otro comentario especial enseguida después de la línea con #! para definir la codificación:

# -*- coding: encoding -*-


Con esa declaración, todos los caracteres en el archivo fuente serán traducidos utilizando la codificación encoding, y será posible escribir directamente cadenas de texto literales Unicode en la codificación seleccionada. La lista de posibles codificaciones se puede encontrar en la Referencia de la Biblioteca de Python, en la sección sobre codecs. 
Por ejemplo, para escribir literales Unicode, incluyendo el símbolo de la moneda Euro, se puede usar la codificación ISO-8859-15, en la que el símbolo Euro tiene el valor 164. Este script imprimirá el valor 8364 (el código Unicode correspondiente al símbolo Euro) y luego saldrá:

# -*- coding: iso-8859-15 -*-
moneda = u"€"
print ord(moneda)

Si tu editor tiene soporte para guardar archivos como UTF-8 con marca de orden de byte UTF-8 (también conocida como BOM), podés usar eso en lugar de la declaración de codificación. IDLE lo soporta si se activa Options/General/Default Source Encoding/UTF-8. Notá que esto no funciona en versiones antiguas de Python (2.2 y anteriores), ni por el sistema operativo en scripts con la línea con #! (solo usado en sistemas Unix). Usando UTF-8 (ya sea mediante BOM o la declaración de codificación), los caracteres de la mayoría de los idiomas del mundo pueden ser usados simultáneamente en cadenas de texto o comentarios. 
No se soporta usar caracteres no-ASCII en identificadores. Para mostrar todos estos caracteres de forma apropiada, tu editor debe reconocer que el archivo es UTF-8, y debe usar una tipografía que soporte todos los caracteres del archivo.

No hay comentarios:

Publicar un comentario