8 Take Me Down To The Paradise City Where The Grass Is Green And The Girls Are Pretty 8

jueves, febrero 17, 2005

Encodings

Bien, desde luego no es nada fácil ni divertido ser ordenador. Todo binario, octal o hexadecimal. Pero claro, desde luego ASI tampoco es divertido ser programador y ya no digamos usuario. Bien, pues así comienza la historia de los encodings.

Dado que la computadora es un invento estadounidense, pues tampoco hubo demasiado problema. Los yankees asignaron un código binario a cada carácter, en mayusculas y minusculas, a los números. Como la cosa iba en potencias de 2, pensaron que les llegaba cojonudamente con 2 elevado a la 7 = 128 caracteres. Así nació ASCII -American Standard Code for Information Interchange (Código Estadounidense Estándar para el Intercambio de Información)-.

Claro, jaja, que divertido, pensaron ellos. EL RESTO DEL MUNDO QUE SE JODA. Pero llegaron los japoneses (y sus kanjis) , y franceses (y sus letras acentuadas), y rusos ( y sus caracteres cirílicos)....y por último, los castellanohablantes con sus eñes porculeras. Y la cosa (el ASCII) no daba para mas.

Aqui surgen dos familias distintas de encodings: UTF-8 (Unicode) y las ISO. UTF-8 (8-bit Unicode Transformation Format) simplemente añade un byte nuevo a ASCII...para generar caracteres de otros lugares. Claro. Cojonuo. Risas. Aplausos. El criterio es extraño, pero digamos que los caracteres arabigos que utilizamos (acentuados y especiales) van primero. Chachi. Tema de acentos y eñes solucionado. Franchutes y latinos (porque como todo yankee sabe, España pilla bajando Mexico a la derecha) contentos. Pero....¿Y ruskis y japos?¿chinos y koreanos?....pos ala, sigamos con la juerga.....otro byte más y todos contentos. Estupendo. UTF-16. Y ya que estamos....¿alguien ha pensado en los aborígenes samoanos? ¿Los árabes?.... Bueno, creo que lo pillaís. Pero ahora quiero que os fijeís en una cosa: ¿Un documento UTF-16 de 1000 caracteres chinos no tiene el doble de tamaño que uno UTF-8 de 1000 caracteres? Pues si. Asi que cualquier intento de abrir un documento UTF-16 como UTF-8 puede tener resultados despatarrantes. Pero no os preocupeis. Las cabezas pensantes han colocado una cabecera especial que dice de que clase es cada documento y ni tan mal.

La otra familia es la de las ISO. La ISO, para quien no lo sepa, es la Organización Mundial de Estandares. Una especie de abuelo Cebolleta metomentodo, al que poca gente hace caso, pero redios que ruido mete. A lo que iba. Para terminar de dar por saco, la ISO ha sacado sus propias normas sobre encodings. Básicamente define una serie de regiones. En nuestro caso, la región es Europa Occidental, encoding Latin 1 o ISO-8859-1. Y lo mismo que UTF. Se sigue manteniendo la compatibilidad con ASCII para el primer byte y el resto hasta el segundo, son los carácteres especiales para cada región. Así hay una región Japonesa, una árabe, otra coreana.....etc.

¿Y toda esta barrila porqué? os preguntareís...pues porque no hay un éstandar definido y cada programa hace lo que le dá la puuuuuuuuuuta y real gana. Y cuando tienes un servidor en el que mete mano todo dios desde diferentes programas de edición, sistemas operativos y la madre que parió a Joselito....tienes tardes como la de hoy, intentando forzar que los documentos se muestren como deben y no aparezca una "?" en vez de una "Á".

Claro, es fácil y divertido si ves "?lvarez"....hombre, puedes deducirlo fácilmente. Pero la cosa se jode cuando pretendes que un documento (que no has editado tu) en un encoding que desconoces sea reconocido por un servidor del que tampoco estás seguro cual es el encoding que maneja.

¿Resumiendo? Cristo de narices. Y menos mal que lo hemos dejado medio solucionado. Pero en tardes como hoy, te preguntas que sería de tu vida si te dedicases a inspeccionar edificios medio derrumbados por incendios antológicos.

Ala.

P.D.: Suena Gimme The Prize. Queen Rulz!!