caracteres_extranyos.jpgCaracteres extraños

Uno de los problemas mas recurrentes es el mostrar correctamente los caracteres tildados, eñes y otros (á, é, í, ó, ú, ñ...).
Esto sucede por culpa de las diferentes codificaciones de caracteres.

Para los hispanohablantes las dos más importantes son:
  • UTF-8: Juego de caracteres universales, contiene signos de la mayoría de los lenguajes del mundo.
  • ISO-8859-1: Juego de caracteres del lenguaje latino como el español, portugués, alemán, francés y otros.
Cualquiera de las dos nos sirve, el número de bits transferidos es mínimo, pero tal vez UTF-8, por seguir la línea y el posicionamiento sobre la gran mayoría de sitios que existen, sea la mejor opción.

En Html es sencillo indicar la codificación con la etiqueta meta
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Las entidades HTML que empiezan por & y terminan en un ; es otra forma de representar estos caracteres al margen de la codificación (&aacute; á, &eacute; é ...) pero en general no debemos utilizarlos a exepción de &gt; >, &lt; < y &quot; " que pueden interferir en la sintaxis del mismo.
Los archivos de texto se guardan en el equipo también con una codificación específica, los html son un tipo de archivo de texto, es importante que la codificación del archivo guardado coincida con la especificada en el metatag.

Cadena de escape en javascript
En programación, cuando incluimos un texto (un mensaje para el usuario por ejemplo), la máquina no trata de interpretar ese texto y muestra lo escrito tal cual se lo damos. En javascript para esto utilizamos las comillas:
alert('Esto es un texto para el usuario, no lo interpretes');
Sin embargo en ocasiones queremos que sí interprete algunos caracteres como, por ejemplo, un salto de linea o un tabulador, para ello necesitamos una cadena de escape, en javascript, la cadena de escape es la barra invertida o contrabarra \
alert('\t Esto es un texto tabulado.');
  • \n: Salto de linea.
  • \r: Retorno de carro.
  • \t: Tabulación horizontal.
  • \v: Tabulación vertical.
  • \': Comilla simple o apostrofe.
  • \": Comilla doble.
  • \\: Barra invertida.
  • \xdd: Caracter especial especificado por dos dígitos hexadecimanes dd

Esta última cadena de escape nos permitirá mostrar todos los caracteres que deseamos, para ello solo nos hace falta conocer los equivalentes hexadecimales de los caracteres.

unicode-table.gif

Así podremos incluir cualquiera de estos caracteres independientemente de la codificación del archivo.
alert('Atención'); //Se muestra bien si la codificación es correcta
alert('Atenci\xf3n'); //Se muestra bien independientemente de la codificación




http://www.documentoweb.com/ISO-8859-1-y-UTF-8-Solucion-al-problema-de-codificacion-de-caracteres
http://blog.unijimpe.net/tildes-en-javascript/