- Bien. Al subir tus páginas a la Web es posible que te encuentres con un pequeño problema.
- ¡No me digas! ¿Cuál?
- Que desaparezcan todos los acentos. A veces pasa. La ñ se convierte en q, la í se convierte en m, el signo ¿ se convierte en ?, etc. Sería un poco largo de explicar ahora, tiene algo que ver con las codificaciones de caracteres, y todo eso. De todas formas, lo importante es que tiene fácil arreglo.
- Ah, bueno, entonces...
- ¿Te acuerdas de cuando hablamos sobre referencias a entidades de caracteres?
- Mmmm, la verdad es que no...
- Sí hombre, lo vimos en el tutorial cuarto. Son códigos especiales que empiezan con un & y terminan con un punto y coma, y te puse como ejemplo el código para el símbolo del copyright, ©
- Ah, sí, es verdad.
- Bien, pues con estos códigos podemos poner caracteres acentuados y otros símbolos especiales sin miedo a que desaparezcan al subir la página a la Web.
- ¿Quieres decir que hay un código para cada carácter acentuado?
- Sí, hay muchos códigos. Puedes ver la lista completa en la especificación de HTML. Pero si escribes en castellano con estos te valdrán:
á | á | Á | Á |
---|---|---|---|
é | é | É | É |
í | í | Í | Í |
ó | ó | Ó | Ó |
ú | ú | Ú | Ú |
ñ | ñ | Ñ | Ñ |
¿ | ¿ | ¡ | ¡ |
ü | ü | Ü | Ü |
< | < | > | > |
& | & |
- O sea que cada vez que quiera escribir á tengo que poner á ¿no?
- Bueno, en teoría no debería ser necesario, aunque como te he dicho es la mejor manera de asegurarte de que tu documento se verá lo mejor posible. De todos modos lo recomendable, si ves que tu servidor se come los acentos, es convertir los caracteres a sus referencias antes de subir el documento a la Web. O sea, escribes normalmente, conviertes los caracteres con el editor (con la función de reemplazar) y entonces lo subes.
- Ajá, entiendo.
- Además habría que decirle al navegador qué codificación de caracteres estamos usando, que es nuestro casos erá la ISO-8859-1...
- ¡Alto ahí! Tradúceme eso al castellano.
- Es algo un poco difícil de explicar, y es un poco lioso. ¿De verdad quieres que te lo explique?
- Sí, por favor.
- Muy bien. En primer lugar, existe una cosa llamada Conjunto Universal de Caracteres, o en inglés Universal Character Set (UCS). En teoría, contiene todos los posibles caracteres que se pueden escribir en todos los idiomas.
- Impresionante.
- ¿Verdad que sí? Bueno, en segundo lugar, existe otra cosa que se llama Conjunto de Caracteres del HTML, que son todos los caracteres que entiende un intérprete de HTML. Pues bien, resulta que el conjunto de caracteres del HTML es igual que el conjunto de universal caracteres.
- Entonces, ¿podría escribir mi documento HTML en hebreo, o en chino?
- Sí, perfectamente, pero antes tienes que avisar al navegador de que vas a utilizar cosas raras. Tienes que elegir una codificación de caracteres.
- Pero ¿por qué? Si me acabas de decir que el HTML lo entiende todo.
- Como sabes, la memoria de los ordenadores sólo acepta números. De modo que para almacenar la letra á, por ejemplo, lo que guarda él es el número 0225, que es el código de la letra á.
- Ya me estoy perdiendo, pero bueno. O sea, que cada letra corresponde a un número, ¿no?.
- Sí. Pero resulta que en el alfabeto griego, el número 0225 corresponde a la letra alpha. Entonces, si tú escribes tu documento en griego, y quieres que salgan letras griegas, tienes que decir que has utilizado la codificación griega de caracteres. Así, cuando al agente de usuario le llega el código 0225, no lo transforma en la letra á, sino en la letra griega alpha.
- O sea, que la codificación de caracteres le dice al agente de usuario a qué letra del conjunto universal de caracteres corresponde cada código numérico.
- Exactamente. En nuestro caso, como nosotros escribimos en castellano, y tenemos acentos, eñes y toda la pesca, tenemos que utilizar la codificación ISO-8859-1.
- ¿Y cuál es la codificación griega?
- La ISO-8859-7. ¿Y tú para qué quieres la codificación griega?
- No, nada, pura curiosidad.
- Bueno, el caso es que existen varias maneras de declarar la codificación, algunas mejores que otras. Lo mejor es configurar al servidor para que sea él el que anuncie la codificación usada. De hecho es muy probable que ya esté configurado para ello. Pero para estar completamente seguros, y como eso probablemente no podrás hacerlo tú ahora, lo puedes hacer en HTML sin mucho peligro. Simplemente has de poner este elemento META
en el HEAD
del documento, justo después de la etiqueta <head>
:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- ¡Qué cosas más raras me haces hacer!
- No es culpa mía. Bueno, como ves la cuestión de los caracteres especiales en la Web es bastante compleja. De momento nosotros nos vamos a parar aquí y no vamos a complicar las cosas más. ¿Seguimos?
- Sigamos, sigamos.
Sitio Web mantenido por Juan R. Pozo (jrpozo arroba conclase punto net).
Última modificación: 14/12/2001 - © 2001 Juan R. Pozo y conclase.net