La tecla de acceso 'n' lleva a la navegación de la página. Ir al inicio del contenido.

Este documento es una traducción. En caso de discrepancias o errores, la única versión normativa es el último original en inglés. Los derechos de autor originales corresponden al W3C, como puede verse al final de la página.

Traductor: Spanish Translation Services by Trusted Translations, Inc.

s_gotoW3cHome Internacionalización
 

La marca de orden de bytes (BOM) en HTML

Audiencia de destino: Los codificadores de XHTML/HTML (que utilizan editores o lenguajes de script), los desarrolladores de sistemas de escritura (PHP, JSP, etc.), los codificadores CSS, los gerentes de proyectos web y cualquiera que necesite una mejor comprensión de qué es BOM y cómo afecta las páginas HTML.

Nota: Desde la traducción de este documento se han producido modificaciones en el original en Inglés. Consulte el registro de cambios.

Pregunta

¿Qué es la marca de orden de bytes y qué es necesario saber al respecto cuando se crea una página HTML?

Respuesta

¿Qué es una marca de orden de bytes?

Al principio de un archivo Unicode, se pueden encontrar algunos bytes que representan el punto de codificación Unicode U+FEFF SIN ANCHO NI ESPACIO (ZERO WIDTH NON-BREAKING SPACE, ZWNBSP). Esta combinación de bytes se conoce como una marca de orden de bytes (BOM).

Cuando un carácter está codificado en UTF-16, sus 2 ó 4 bytes pueden ordenarse de dos formas distintas (little-endian o big-endian). La imagen a continuación lo ilustra. La marca de orden de bytes indica qué orden se usa, para que las aplicaciones puedan decodificar inmediatamente el contenido. El contenido de UTF-16 siempre debería comenzar con la BOM.

Los bytes representan la BOM.

En la codificación de UTF-8, la presencia de BOM no es esencial, porque a diferencia de las codificaciones de UTF-16, no existe una secuencia alternativa de bytes en un carácter. La BOM puede seguir dándose en texto codificado UTF-8; no obstante, también puede darse como el producto secundario de una conversión codificada o porque lo agregó un editor. En esta situación, al BOM a menudo se le llama firma UTF-8.

¿Qué es necesario saber acerca de BOM?

Cuando la BOM se usa en páginas web o editores para contenido codificado UTF-8, algunas veces puede introducir espacios en blanco o secuencias cortas de caracteres de aspecto extraño (tales como ). Por esta razón, generalmente es mejor para la interoperabilidad omitir la BOM, si es posible, para el contenido UTF-8.

Para obtener más información acerca de cómo detectar y eliminar una marca de orden de bytes, consulte Visualización de problemas causados por la BOM de UTF-8. Se puede averiguar si una página contiene una BOM al inicio del contenido o más adelante mediante el Comprobador de internacionalización de W3C.

Si su editor no le permite especificar si desea una BOM mientras guarda el contenido como UTF-8, por lo general, deberá indicar que no.

Preferencias de BOM en un panel de diálogo.

Si usa UTF-16. De acuerdo con la especificación de HTML5, si su página está codificada como UTF-16, deberá usar la marca de orden de bytes en HTML. Es por esto que se utilizará para indicar la codificación de la página para el explorador.

Se recomienda usar UTF-8 en lugar de UTF-16, si utiliza una codificación Unicode. Así que para la mayoría de las personas, esto será académico.

 

La especificación de HTML5 actualmente no permite el uso de ninguna otra declaración codificada en el documento para UTF-16, aunque esto sigue bajo discusión y podría cambiar. De hecho, significa que la BOM es, por sí misma, la declaración que se debe añadir.

El requisito para usar la BOM para el contenido UTF-16 codificado en HTML5 significa que no se debería hacer, aunque los documentos en HTML5 están etiquetados como "UTF16BE" o "UTF16LE". Esto es debido a que el Estándar de Unicode indica que no se deberá usar una BOM cuando el texto esté etiquetado como una de dichas codificaciones. Si, por ende, desea declarar la codificación en el encabezado HTTP (el cual no es rechazado por la especificación HTML5), deberá usar únicamente el nombre charset de IANA "UTF-16".

Tenga en cuenta que esto solamente es con respecto al etiquetado del contenido. Por supuesto, la secuencia actual de bytes es la misma, sin importar que etiquete el contenido como UTF-16 y agregue una BOM o que la etiquete como UTF16LE o UTF-16BE.

 

A propósito

La marca de orden de bytes también se utiliza para el texto etiquetado como UTF-32 y no se debería usar para el texto etiquetado como UTF-32BE o UTF-32LE. El uso de UTF-32 para el contenido HTML no se recomienda en absoluto, por lo que no se ha mencionado hasta ahora.

Dinos qué piensas (en Inglés).

Suscripción a feed RSS.

Nuevos recursos

Noticias de la página de inicio

Twitter (Noticias de la página de inicio)

‎@webi18n

Lecturas complementarias

De: Richard Ishida, W3C. Traductor: Spanish Translation Services by Trusted Translations, Inc..

XHTML 1.0 válido
CSS válido
Codificado en UTF-8

Traducido del inglés con fecha 2010-08-10. Traducción modificada por última vez el 2011-01-26 11:17 GMT.

Para ver el historial de cambios del documento, busque qa-byte-order-mark en la bitácora de internacionalización.