|
1.0 Sobre la Codificación
Quiero empezar esto con unas cuantas nociones generales del desarrollo web, que, si bien deberían
saberlas, o las saben las refrescamos un poco.
Los WebBrowsers son los aplicativos con más poder lógico que existen en el planeta, tomar una
página cualquiera, y entender lo que el desarrollador quiso decir, y lograr
representarlo en la pantalla no es fácil. Se requiere de mucha flexibilidad, y
con los comportamientos de hoy en día, creo que los desarrolladores de browsers
tienen muchísimo merito ya que son la ventana a un mundo realmente sofisticado
como el de la programación web.
Aun así estos aplicativos no son sabios salomónicos y necesitan algo de ayuda de parte de los
desarrolladores. Y es aquí donde entra el primer punto:
1.1 La codificación de caracteres
Si alguna vez se han preguntado que significa que un programa sea UNICODE, ASCII o UTF-8 tan solo quiere decir que
codificación de caracteres utiliza. No me voy a extender mucho sobre este
tópico pero si quiero dar unos cuantos lineamientos a la hora de trabajar de
forma global con hojas de caracteres.
Esto es algo que absolutamente todos los desarrolladores deberían saber, pero nadie se preocupa
en decírselos a menos que haya un Nazi a la cabeza del equipo (como yo) y nadie
se preocupa en implementar correctamente mientras exista el “En mi máquina funciona™”.
Cuando se inventó la computación en la década de los setenta, solo había espacio en las tablas de
caracteres para 255 de estos, por lo cual, los primeros 125 eran de la “a” a la
“z” con los caracteres más comunes de puntuación romana (comas, puntos,
acentos, apostrofes etc) y el resto de los caracteres del 125 en adelante eran
implementados de forma aleatoria dependiendo de la zona donde se estaba geográficamente.
Esta codificación es la famosa ASCII o ANSI. Por esa razón ALT+ 165 da una Arroba (@). Obviamente
cada persona en el mundo utilizaba los últimos 100 caracteres para su idioma
regional, y empezaron a crearse codificaciones de todo tipo. Los chinos en ALT+
165 tienen un carácter todo loco, los alemanes tendrán Umlauts. Y a lo mejor
los argentinos tendrán alguna otra vaina como un Che! o una mafalda pequeñita.
Estas codificaciones empezaron a recibir los nombres más variopintos (Latin1 Windows 1225, Chinese
Tradicional Windows 5567) y cada era completamente no relacionada con las
demás. Todo esto, mientras se trabajó con programas locales no fue un problema.
El problema vino cuando el internet se convirtió en autopista y los mensajes
que te enviaba tu compañero de proyecto de República checa era una parranda de
garabatos a pesar que lo escribió como normalmente tu lo harias.
A razón de esto a alguien se le ocurrió la maravillosa, fantabulosa, increíble y no menos genial
idea de hacer un solo set de caracteres para todo el mundo. Donde, los primeros
125 tuvieran exactamente la misma codificación de los ANSI/ASCII (para la
compatibilidad) y el resto fuesen exclusivos de forma segmentada para cada
región del planeta. A esta codificación se le conoce como Unicode, pero no es
la que usaremos. Nosotros usaremos UTF-8 que ayudo a solventar otros cuantos
problemas que Unicode traía justamente por la compatibilidad.
UTF-8 tiene un carácter en una posición y es el mismo carácter para absolutamente todos las
computadoras en el planeta. Si el U+88766 Es un perolito con el pelo
alborotado, todos van a ver el perolito con el pelo alborotado en cualquier
parte del planeta sin importar el idioma del OS base.
A esto se le llama globalización.
Con esto se
lograron dos cosas:
1)
Unificar todos los sets de caracteres habidos y por haber en una sola masa uniforme bien
formada donde sin importar que o como se escriba, todos podrían ver el
resultado final del mismo.
2)
Se eliminaron los problemas de comunicación regionales. Al todos utilizar el mismo
set de caracteres no hay forma que la información sea incapaz de llegar a su
destino de forma concreta.
Por que les he contado esta retahíla ladilla? Por que la la mayoría de los desarrolladores
hacen las cosas sin pararle media bola al set de caracteres utilizados. Al no
pararle bolas, colocar cualquier cosa (o no colocarle un set de caracteres a
las páginas) ocurren cosas como que las ñs y los acentos (á, é, í, ó, ú) salgan
como rombos con signos de interrogación, ya que el browser puede ser muy
avanzado pero no es capaz de deducir el set de caracteres, a pesar de que lo
intenta y muchísimas veces lo logra. Otras veces falla completamente.
Nosotros utilizaremos UTF-8. Los archivos los crearemos en UTF-8 y colocaremos
el set de caracteres en la página explícitamente en UTF-8 también. Muchos crean
el archivo en ANSI, y colocan UTF-8 como
set de caracteres y duran 4 días pensando por qué la página no levanta,
no compila y se ve mal.
Resumen:
-
Absolutamente todo lo que hagan que este en UTF-8. No importa lo que los demás digan. Si esta
en UTF-8 Se verá bien en cualquier parte del planeta. Y cualquier sistema
operativo.
- UTF-8 contiene absolutamente todos los caracteres creados por el hombre. El que les
diga lo contrario no sabe la que dice
- Charmap : herramienta muy útil creada por Microsoft. No me recuerdo como se llama la de
Apple, se que Gnome tiene una muy útil también
- Windows Vista, Windows 7, OSX 10.1+, Gnome 2.0 todos
estan escritos y soportan UTF-8. Windows Ancient (cualquier cosa antes e
incluyendo XP) Esta regionalizado. Y no debería usarse más simplemente por el
soporte reducido a UTF-8 (que lo tiene pero es horrífico)
|