Tildes en Javascript
- 16/05/2008
- 8:44 pm
Uno de los problemas mas recurrentes es el mostrar correctamente los caracteres tildados, eñes entre otros (á, é, í, ó, ú, ñ...), esto es sencillo de resolver en html utilizando el código html del mismo, pero si deseamos mostrar tildes en Javascript, por ejemplo en un alert obtenemos resultados indeseados.

Por ejemplo si tenemos el siguiente script que muestra un mensaje de alerta a los usuarios, ala ejecutarlo se mostraran caracteres extraños dependiendo de la codificación de la página.
-
function hello() {
-
alert("Atención Perú!!!");
-
}
Cadenas de escape en Javascript
Las cadenas de escape permiten introducir caracteres especiales en Javascript como saltos de linea, tildes, tabuladores, etc. Entre estas cadenas de escape podemos listar:
- \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 ultima cadena de escape nos permitirá mostrar todos los caracteres que deseamos, para ello solo nos hace falta conoces los equivalentes hexadecimales de los caracteres.
Tabla de Caracteres Especiales
Los caracteres especiales están expresados en números hexadecimales y con ellos podremos imprimir cualquier caracter de acuerdo a nuestras necesidades.
Luego reemplazando las letras tildadas por sus equivalentes tendríamos la función de ejemplo:
-
function hello() {
-
alert("Atenci\xf3n Per\xfa!!!");
-
}
Pueden ver el ejemplo funcionando en Tildes en Javascript en donde podemos ver el resultado de aplicar los caracteres especiales. Además de ello pueden encontrar una tabla de equivalentes mas completa en Unicode Character Table.
Posts Relacionados
- Ajedrez JavaScript
- Acelerar carga web con PHP
- jQuery Flash Plugin
- PNG transparente en IE
- Comprimir archivos Javascript
Total de Comentarios: 6
Para evitar esos problemas simplemente se debe especificar la codificación adecuada.
@alex: Debería, pero no siempre funciona. En el curro ya hemos configurado, reconfigurado y requeteconfigurado tanto Apache como PHP y MySQL y no hay manera. Al menos ahora hemos conseguido que las cadenas que tomamos directamente de MySQL las envíe con el &xacute; de marras, pero con los “alert” seguimos con problemas (yo edito en UTF-8, se supone que Apache dice en la cabecera que lo envía en UTF-8, pero por alguna razón se empeña en interpretarlo con la codificación de Windows).
@unijimpe: Gracias. A ver si ahora la cosa funciona.
Cierto, como dice alex, con la codificación adecuada, ya es suficiente.
El archivo js debe estar codificado en utf8 sin BOM (Byte order mark), el html debe de tener las cabeceras de meta type content de utf8, y el archivo tambien codificado con urf8. No me ha dado problemas siguiendo esta configuracion, y utilizado en proyectos grandes.
@Ñuño: Sobre lo de la extraccion de la DB, no hace falta que no sustituyas por ´ etc… se soluciona (primero teniendo la DB en utf-8) y segundo haciendo la primera query despues de la conexion con SET NAMES ‘utf8′ (si no recuerdo mal).
Con esto no hay caracter raro que se te resista

