Set de caracteres para documentos

Pregunta

¿Qué es el 'set de caracteres para documentos' de XML y HTML? ¿De qué manera se relaciona con las codificaciones que utilizo para mis documentos?

Respuesta

Para que resulte más sencillo y a fin de seguir las prácticas comunes, cuando mencionamos Unicode en estas preguntas frecuentes nos refeinforimos al set de caracteres definidos por Unicode e ISO/IEC 10646.

El set de caracteres para documentos o el set de caracteres básicos de XML y HTML (de la versión 4.0) es el set de caracteres universales (UCS) tal como lo definen las normas ISO/IEC 10646 y Unicode. Los códigos de estos sets son idénticos entre sí.

Esto significa que el modelo lógico que especifica la manera de procesar XML y HTML se describe en términos del set de caracteres de Unicode.

No significa que todos los documentos HTML y XML deben estar codificados como Unicode; sin embargo, sí significa que estos documentos sólo pueden contener caracteres definidos por Unicode. Tenga en cuenta que los sets de caracteres y las codificaciones de caracteres son cosas diferentes; por ejemplo, el repertorio completo de Unicode se puede codificar de más de una manera, entre ellas, UTF-8, UTF-16 y UTF-32. Se podrá utilizar cualquier codificación de caracteres para su documento siempre que se haya declarado correctamente y que los caracteres que representa el set conformen un set secundario del repertorio Unicode (sería extremadamente inusual encontrar uno que no fuera un set secundario).

Por otra parte, es una buena idea utilizar la codificación de Unicode cada vez que sea posible, ya que simplifica diversos aspectos de la internacionalización web y es ampliamente admitida por los agentes de usuarios HTML y por todos los procesadores XML.

Una consecuencia importante del set de caracteres para documentos es que los valores de las referencias de caracteres numéricos (como &#x01F5 o ǵ para LETRA G MINÚSCULA LATINA CON ACENTO AGUDO) se interpretan como caracteres Unicode, sin importar la codificación que utilice se para el documento. Esta es una fuente común de errores entre aquellos que no conocen claramente la distinción.

A propósito

En la práctica, no se pueden utilizar todos los caracteres Unicode en cualquier lugar de XML y HTML. Por ejemplo, algunos caracteres están excluidos de objetos como nombres de etiquetas de elementos y determinados caracteres de control están excluidos del contenido. Sin embargo, tenga en cuenta que el XML 1.1 permite la utilización de muchos más caracteres para objetos, como los nombres de las etiquetas de elementos, en comparación con XML 1.0.

Información histórica

El HTML 2.0 ha definido que todos los caracteres en un documento HTML se deberán interpretar en relación con ISO 8859-1 (también conocido como ISO Latín 1). Sin embargo, se anunció además que todas las versiones futuras de HTML utilizarán un súper set de esos caracteres, a saber, Unicode (o ISO 10646), lo que significa que existe una gran cantidad de caracteres disponibles en el mundo.

No había finalizado el análisis acerca de la manera correcta de utilizar Unicode en Internet ( RFC 2130, abril de1997, y RFC 2070, enero de 1997) cuando se lanzó el HTML 3.2 (enero de 1997); por eso, la inclusión de Unicode en HTML tuvo que esperar a HTML 4.0 (diciembre de 1997).