Actualizado el 14-01-2007
versión para imprimir
La internacionalización de internet
La informática en su corta historia está claramente dirigida por el mundo anglosajón. No es extraño en consecuencia que en su diseño inicial se atuviese estrictamente a sus necesidades. Los ordenadores, y por supuesto las aplicaciones de internet, en sus inicios usaban un conjunto de caracteres apenas suficiente para la lengua inglesa; nada de caracteres propios de otras lenguas occidentales (á, é, í, ó, ú, ñ, Ç, ß...).
Este conjunto de caracteres se conocía como ASCII. El standard ASCII original definía cada carácter permitido con un esquema de 7 bits, permitiendo 128 caracteres distintos; las posiciones 0 a 33 y 127 se reservan para códigos de control. Por ejemplo la posición 32 equivale a un espacio (puedes probarlo pulsando en tu teclado alt 32). Los espacios del 33 al 126 se destinaban a contener los numeros [0-9] y un juego alfabético básico [a-z A-Z], excluyendo vocales acentuadas y caracteres propios de otras lenguas. Este juego de caracteres es de uso seguro en nuestros documentos html; puedes introducirlos tal cual desde tu teclado, y se visualizarán correctamente en cualquier navegador/ordenador.
En la década de los 80 era evidente la necesidad de superar el standard ASCII, entre otras razones porque estaban proliferando soluciones locales, que si bien permitían el uso de caracteres singulares de cada idioma, dificultaban la compatibilidad.
Nace así el standard ISO 8859 (o Latin-x), todavía hoy de uso generalizado, que simplemente rediseñaba el standard ASCII en un esquema de 8 bits, permitiendo pasar a 256 caracteres frente a los anteriores 128.
Este standard mantenía inalteradas las primeras 128 posiciones, y definia las 128 restantes acomodandolas a cada familia de escrituras: Existen 10 versiones standard de ISO 8859 (o Latin-x): Latin1 (Europa Occidental); Latin2 (Europa del este); Latin3 (Maltés y Esperanto); 4. Latin4 (Europa del norte); 5. Latin-Cirílico; 6. Latin-Arabe; 7. Latin-Griego; 8. Latin-Hebreo; 9. Latin5 (Turco); 10. Latin6 (Nordico), con lo cual se solucionaba el uso de caracteres de la casi totalidad de escrituras occidentales.
Latin-1 es el conjunto de caracteres por defecto indicado en los standards HTML hasta la versión 3.2 incluida.
En cuanto a su uso en la red, debes tener en cuenta que las posiciones 0 a 31, y 127 a 159, inclusive, no pueden ser usadas válidamente (estan formalmente sin definir).
Los caracteres válidos del ascii original son seguros. En cuanto al resto (es decir, la parte superior del ascii extendido), su introducción directa pulsando la tecla correspondiente no es recomendable, puesto que estas a expensas de la concreta configuración de pc/navegador de cada usuario, y es bien posible que no se vean correctamente, sobre todo por usuarios de otras áreas geográficas.
Precisamente para evitar este problema el lenguaje HTML ofrece la alternativa de representar estos caracteres mediante un código (mnemotecnico o numérico): las entidades de caracteres y las referencias de caracteres, respectivamente.
Reiterar que el primer conjunto de caracteres (0-127) es idéntico tanto en ASCII como en ASCII extendido (8859 o Latin-1), y para su representación no necesitas usar entidades, salvo para los cuatro caracteres reservados:
< representa el signo <
> representa el signo >
& representa el signo &
" representa el signo "
Estos caracteres no pueden ser usados directamente en páginas HTML, ya que están reservados para un fin distinto: < y > son delimitadores de etiquetas; & se usa como delimitador, precisamente, de entidades de carácteres, y " para los valores de atributos (" en realidad podria usarse sin problemas, de hecho en la especificacion HTML 3.2 no se incluia como carácter reservado).
entidades o referencias de de caracteres
Las entidades de caracteres son formas de introducir en nuestra página carácteres de forma segura garantizando su correcta visualización.
El uso de entidades de carácter es siempre necesario cuando se trata de los cuatro signos reservados antes indicados. Es decir, si quieres emplear el signo < en tu página y que se vea como tal, sin ser interpretado como comienzo de etiqueta, debes usar <.
En cuanto a los demás caracteres, el uso de entidades es recomendable a partir de las posiciones ASCII 159 a 255, que representan símbolos especiales.
| Cod. | Mnemo | (1): | (2) |
|   | | nbsp | |
| ¡ | ¡ | ¡ | ¡ |
| ¢ | ¢ | ¢ | ¢ |
| £ | £ | £ | £ |
| ¤ | ¤ | ¤ | ¤ |
| ¥ | ¥ | ¥ | ¥ |
| ¦ | ¦ | ¦ | ¦ |
| § | § | § | § |
| ¨ | ¨ | ¨ | ¨ |
| © | © | © | © |
| ª | ª | ª | ª |
| « | « | « | « |
| ¬ | ¬ | ¬ | ¬ |
| ­ | ­ | | |
| ® | ® | ® | ® |
| ¯ | &hibar; | ¯ | &hibar; |
| ° | ° | ° | ° |
| ± | ± | ± | ± |
| ² | ² | ² | ² |
| ³ | ³ | ³ | ³ |
| ´ | ´ | ´ | ´ |
| µ | µ | µ | µ |
| ¶ | ¶ | ¶ | ¶ |
| · | · | · | · |
| ¸ | ¸ | ¸ | ¸ |
| ¹ | ¹ | ¹ | ¹ |
| º | º | º | º |
| » | » | » | » |
| ¼ | ¼ | ¼ | ¼ |
| ½ | ½ | ½ | ½ |
| ¾ | ¾ | ¾ | ¾ |
| ¿ | ¿ | ¿ | ¿ |
| Cod. | Mnemo | (1): | (2) |
| À | À | À | À |
| Á | Á | Á | Á |
| Â | Â | Â | Â |
| Ã | Ã | Ã | Ã |
| Ä | Ä | Ä | Ä |
| Å | Å | Å | Å |
| Æ | Æ | Æ | Æ |
| Ç | Ç | Ç | Ç |
| È | È | È | È |
| É | É | É | É |
| Ê | Ê | Ê | Ê |
| Ë | Ë | Ë | Ë |
| Ì | Ì | Ì | Ì |
| Í | Í | Í | Í |
| Î | Î | Î | Î |
| Ï | Ï | Ï | Ï |
| Ð | Ð | Ð | Ð |
| Ñ | Ñ | Ñ | Ñ |
| Ò | Ò | Ò | Ò |
| Ó | Ó | Ó | Ó |
| Ô | Ô | Ô | Ô |
| Õ | Õ | Õ | Õ |
| Ö | Ö | Ö | Ö |
| × | × | × | × |
| Ø | Ø | Ø | Ø |
| Ù | Ù | Ù | Ù |
| Ú | Ú | Ú | Ú |
| Û | Û | Û | Û |
| Ü | Ü | Ü | Ü |
| Ý | Ý | Ý | Ý |
| Þ | Þ | Þ | Þ |
| ß | ß | ß | ß |
| Cod. | Mnemo | (1): | (2) |
| à | à | à | à |
| á | á | á | á |
| â | â | â | â |
| ã | ã | ã | ã |
| ä | ä | ä | ä |
| å | å | å | å |
| æ | æ | æ | æ |
| ç | ç | ç | ç |
| è | è | è | è |
| é | é | é | é |
| ê | ê | ê | ê |
| ë | ë | ë | ë |
| ì | ì | ì | ì |
| í | í | í | í |
| î | î | î | î |
| ï | ï | ï | ï |
| ð | ð | ð | ð |
| ñ | ñ | ñ | ñ |
| ò | ò | ò | ò |
| ó | ó | ó | ó |
| ô | ô | ô | ô |
| õ | õ | õ | õ |
| ö | ö | ö | ö |
| ÷ | ÷ | ÷ | ÷ |
| ø | ø | ø | ø |
| ù | ù | ù | ù |
| ú | ú | ú | ú |
| û | û | û | û |
| ü | ü | ü | ü |
| ý | ý | ý | ý |
| þ | þ | þ | þ |
| ÿ | ÿ | ÿ | ÿ |
Como puedes comprobar, en casi todos los casos puedes expresar cualquier carácter bien mediante su código numérico, bien mediante su regla mnemotécnica. ¿cuando debes usarlos? siempre que tu documento vaya a ser visto por personas de distintas zonas geográficas, o con diversidad de ordenadores y navegadores.
Antes de que desesperes has de saber que prácticamente todos los editores ofrecen algun tipo de ayuda. Por ejemplo arachnophilia hace automáticamente la conversión de los caracteres conflictivos a sus entidades. HTML-KIT dispone de ayudas para insertar estas entidades, y una utilidad que permite cambiar los caracteres por sus entidades automáticamente.
la solución unicode
El standard 8859 fue sin duda un gran avance, pero dejaba fuera todas las escrituras orientales, asi como las que utilizan ideogramas o simbolos. La solución pasaba, una vez mas, por ampliar el número de caracteres disponibles, y para ello se decidió pasar al esquema de 16 bites con lo que automáticamente tenemos espacio para 65536 caracteres.
El standard UNICODE dio ese salto y aunque nunca podrá decirse de ningún standard que recoge todos los caracteres de todas las lenguas imaginables, UNICODE recoge la gran mayoría (y tiene espacio y método para añadir más).
Como UNICODE debe coexistir con software que solo puede utilizar caracteres de 8 bits, es preciso un mecanismo de traducción. A ello provee el standard UTF-8.
UNICODE no es aún de uso universal, pero sí cada vez mas generalizado. De hecho el propio standard HTML, desde la versión 4.0, recomienda usar este conjunto de caracteres-
Para terminar, señalar que el standard UNICODE se ha unificado con el standard ISO10646, así que cuando oigas hablar de cualquiera de ambos, puedes entender que son soluciones equivalentes.¿ como puedo utilizar en mi página UNICODE ?
Puedes introducir caracteres de unicode en tu página acudiendo a las entidades de caracteres ya expresadas. — sirve para escribir un guión largo(—). Los nombres mnemotecnicos se supone que deben ser correctamente interpretados tanto por ISO 8859 como por UNICODE.
También puedes introducirlas si conoces su código numérico: — (—), • (•), etc.
A continuación una lista de caracteres conflictivos. Aunque en windows pueden introducirse con una posición de carácter ASCII-extendido, es una solución incorrecta, no estandard, ya que son posiciones reservadas:
euro -> ascii (invalido) € () -> unicode € (€) -> mnemotecnico € (€)
por mil -> ascii (invalido) ‰ () -> unicode ‰ (‰) -> mnemotecnico ‰ (‰)
tilde -> ascii (invalido) ˜ () -> unicode ˜ (˜) -> mnemotecnico ˜ (˜)
trade mark -> ascii (invalido) ™ () -> unicode ™ (™) -> mnemotecnico ™ (™)