UTF-8

De WiChiron
Saltar a: navegación, buscar

Existen dos métodos de codificación de caracteres: el UCS-2 y el UTF-8. Esto son las aplicaciones que permiten a la máquina interpretar las correspondencias numéricas con los diferentes caracteres. Son las aplicaciones que traducen el código máquina de 0 y 1 (binario) a representaciones legibles para el usuario.

Así cuando nosotros guardamos un documento en el Openoffe, este se guarda codificado con caracteres Unicode codificado según UCS-2.

Basicamente lo que hace UCS-2 es darle a cada carácter o letra del documento dos bytes de tamaño, en esos dos bites se guardará el número correspondiente de la tabla Unicode que recoja el caractér que hemos excrito (por tanto un número comprendido entre 1 – FFFF). Cada carácter es guardado de la siguiente manera:

- Para caracteres 100 hex y mayores: se selecciona el byte más importante (el que corresponde al número del caractere, en primer lugar, y después el otro byte.
- Para el grupo Latín -1: primero un cero, y después el valor del carácter.


Una variante de UCS-2, denominada UTF-16, permite la codificación del conjunto total de los caracteres Unicode.

Hay que destacar que existen una serie de inconvenientes a la hora de utilizar el UCS-2, sobre todo cuando un texto está construido principalmente con caracteres ASCII. Esto se debe a que cada caractere ASCII está acompañado por un cero en su byte. Esto provoca que se aumente el tamaño del archivo. Y otro inconveniente es que la búsqueda de cadenas de caracteres ASCII directamente sobre un texto codificado en UCS-2 es imposible. Además en el entorno de programación C, un byte con valor cero marca el final de una cadena. Así que las cadenas UCS-2 tienden a ser más cortas en una librería C. Por supuesto que hay formas de solucionar estos pequeños problemas, Microsoft utiliza UCS-2 para la representación interna de sus caracteres en su entorno, y la mayoría de los programas Linux lo hacen igual.


El UTF-8 es otro de los sistemas más comunes. Openoffice permite también guardar los documentos bajo este sistema. UTF-8, por ejemplo, almacena los caracteres ASCII (desde el 1 al 80 hex), con sus correspondencia tradicional. Por otro lado los caracteres Unicode con un rango más alto, son definidos en bytes de hasta 4. Un ejemplo, para el almacenaje de una letra acentuada como “á”, se necesitan en UTF-8 dos bytes, para una letra japonesa, 3 bytes.


La ventaja del UTF-8 es su utilización directos de los valores ASCII lo que le permite que un archivo antiguo codificado en ASCII pueda ser interpretado por cualquier programa que utilice UTF-8. Así como su compatibilidad con programas escritos en C.
Se acepta universalmente que UTF-8 es el mejor método de codificación de textos Unicode. Así en el entorno Web (Html), las secuencias UTF-8 son las más utilizadas en los encabezados de las páginas.


En Html, lenguaje más extendido dentro de la Web, se pueden colocar directamente caractéres unicode introduciendo su valor decimal o “decimal entities”, así si quisieramos escribir 東 sólo deberíamos poner en la página la secuencia 東). Este número representa el número Unicode del caractere en su formato decimal. De esta forma se puede utilizar el Unicode directamente en páginas web, donde no se hay especificado Unicode en la composición de la página. Esto parece complejo, ¿por qué no utilizan para la composición de una página web el sistema Unicode? La respuesta es porque actualmente todos los navegadores no soportan los caracteres Unicode.


UTF-8 además para la codificación propiamete de documento u otros textos, parece ser el mejor sistema de codificación para almacenaje de archivos en Unix/Linux, el único porblema es la necesidad de un montor de scrips y de archivos de configuración para su correcto funcionamiento.