Índice
Anterior
Siguiente
Versión Imprimible
Autores
Índice
Capítulo 1

3. El documento HTML (XHTML)

IV. Los códigos de caracteres y los caracteres especiales

En los comienzos de la informática se creó un código llamado ASCII (American Standard Code for Information Interchange) para representar los caracteres. Este código asignaba a cada carácter un número (de 7 bits). Debido al tamaño de ese número (7 bits) ese código constaba únicamente de 128 caracteres que incluían las letras, números y algunos caracteres habituales. Estos caracteres los entiende cualquier ordenador y por tanto podemos usarlos con toda libertad en un documento HTML. Con la evolución y expansión de los ordenadores pronto surgió la necesidad de añadir nuevos caracteres, como por ejemplo aquellos específicos de cada idioma. Por esta razón se crearon extensiones del código ASCII que añadían un bit al número asociado a cada carácter con lo que el número de caracteres representable aumentaba a 256. El problema es que no hubo un acuerdo en este ASCII extendido y se crearon varias versiones entre las que había ligeras diferencias. Los documentos HTML pueden tener todo tipo de caracteres pertenecientes al ISO-Latin-1 (ISO-8859-1) que es una de estas extensiones. Aún así los caracteres que no pertenezcan al código ASCII de 7 bits deben introducirse con la secuencia de escape correspondiente para evitar problemas con ordenadores que no soporten la codficación ISO-Latin-1 sino otra extensión del ASCII. El estándar HTML 4.0 ha llevado más lejos la extensión del código ASCII soportando el conjunto de caracteres UNICODE. Este conjunto incluye los caracteres del ASCII (a los que asigna el mismo número y por tanto es compatible), pero añade todos los caracteres de todos los idiomas del mundo (incluidos los chinos y japoneses). Esto es importante porque UNICODE se está imponiendo como uno de los estándares del presente y del futuro.

Cuando nosotros creamos un documento HTML, es importante señalar que conjunto de caracteres estamos utilizando. Esto lo haremos con la siguiente línea de código:

<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />

Es la definición de un 'metadato', que no es sino información sobre nuestra página HTML. Se colocará entre las etiquetas <head> y </head> de nuestro documento. En este caso estamos señalando que usaremos el conjunto de caracteres ASCII estándar.

Repasando lo que hemos visto sobre el DOCTYPE y los códigos de caracteres, nuestros documentos HTML deberán tener la siguiente estructura:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">

 <head>

  <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">

  <title>

  </title>

 </head>

 <body>

 </body>

</html>

De esta forma declaramos el uso del estándar XHTML 1.0 Estricto y el uso del juego de caracteres ASCII.

¿Y qué pasa con los caracteres no-ASCII?

En caso de requerir de caracteres que no formen parte de la especificación ASCII (y en general, de cualquier conjunto de caracteres declarado en nuestro documento) es necesario usar secuencias de escape que representen dichos caracteres.

Si queremos utilizar cualquier tipo de caracteres, deberemos utilizar el formato Unicode que se consigue utilizando:


  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Hay muchas maneras de representar el mismo carácter con secuencias, pero las más comunes hacen uso de nemotécnicos y valores numéricos decimales.

Secuencias de escape numéricas

Las referencias numéricas de caracteres especifican la posición del código de un carácter en el conjunto de caracteres del documento. Las referencias numéricas de caracteres pueden tener dos formas:

La sintaxis "&#D;", donde D es un número decimal, se refiere al carácter de ISO-10646 con el número decimal D.

La sintaxis "&#xH;" o "&#XH;", donde H es un número hexadecimal, se refiere al carácter de ISO 10646 con el número hexadecimal H. Para los números hexadecimales de referencias de caracteres numéricas no se distingue entre mayúsculas y minúsculas.

A continuación se muestran algunos ejemplos de referencias numéricas de caracteres:

Para consultar la tabla de todos los caracteres ISO-10646 - UNICODE con su respectivo valor numérico puedes visitar: http://www.unicode.org/charts/

Secuencias de escape nemotécnicas

Aprenderse un conjunto de valores numéricos para cada uno de los carácteres especiales que pretendamos usar es una tarea complicada. Para resolver ese problema existen ciertas secuencias de escape nemotécnicas para los más usuales (pero debe aclararse que no todos los caracteres especiales tienen un equivalente nemotécnico).

Entre los más usuales podemos encontrar:

Carácteres especiales
Letras acentuadas, diéresis, etc.
Á &Aacute; À &Agrave; Â &Acirc; Ä &Auml; Ã &Atilde; Å &Aring;
á &aacute; à &agrave; â &acirc; ä &auml; ã &atilde; å &aring;
É &Eacute; È &Egrave; Ê &Ecirc; Ë &Euml;
é &eacute; è &egrave; ê &ecirc; ë &euml;
Í &Iacute; Ì &Igrave; Î &Icirc; Ï &Iuml;
í &iacute; ì &igrave; î &icirc; ï &iuml;
Ó &Oacute; Ò &Ograve; Ô &Ocirc; Ö &Ouml; Õ &Otilde;
ó &oacute; ò &ograve; ô &ocirc; ö &ouml; õ &otilde;
Ú &Uacute; Ù &Ugrave; Û &Ucirc; Ü &Uuml;
ú &uacute; ù &ugrave; û &ucirc; ü &uuml;
Ý &Yacute; ý &yacute; ÿ &yuml;
ñ &ntilde; Ñ &Ntilde; Ç &Ccedil; ç &ccedil;
Signos de puntuación
¡ &iexcl; ¿ &iquest; ´ &acute; · &middot; ¸ &cedil;
« &laquo; » &raquo; ¨ &uml;
Otros alfabetos
Æ &AElig; æ &aelig; ß &szlig; µ &micro;
Ð &ETH; ð &eth; Þ &THORN; þ &thorn;
Monedas
¢ &cent; £ &pound; ¤ &curren; ¥ &yen;
Símbolos matemáticos
¹ &sup1; ² &sup2; ³ &sup3;
­ &shy; × &times; ÷ &divide;
± &plusmn; ¼ &frac14; ½ &frac12; ¾ &frac34;
Ø &Oslash; ø &oslash;
¬ &not;
Operadores empleados por el código HTML
< &lt; > &gt; & &amp; &nbsp; " &quot;
Otros símbolos
º &ordm; ª &ordf; © &copy; ® &reg; ° &deg;
¦ &brvbar; § &sect; &para; ¯ &macr;

Si no es posible ver algunos carácteres probablemente se deba a que no son visibles (como un espacio), o bien, que el ordenador no soporta ese carácter con la configuración actual.