Ir directamente al contenido de esta página
Puede ocurrir que hayamos creado un documento XHTML codificado en UTF-8. Puede ocurrir que una vez que hayamos añadido su contenido queramos validarlo. Puede ocurrir también que empleemos para ello el validador del W3C. Y puede ocurrir, por último, que obtengamos una misteriosa advertencia como ésta1:
Byte-Order Mark found in UTF-8 File.
The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problemas for some texto editors and older browsers. You may want to consider avoiding its use until it is better supported.
En la versión actual del validador —en el momento en que escribo es la 0.8.1, publicada el 8 de agosto de 2007— la advertencia presenta un aspecto bastante discreto, como se puede ver en esta captura:
No obstante, en la versión anterior, la advertencia presentaba un aspecto un tanto alarmante:
Dejando a un lado la mala impresión que puede causar a un usuario que compruebe la validez de nuestro sitio —sobre todo si se trata de un cliente que sepa qué es eso de validar una página—, en los navegadores antiguos puede hacer que al inicio del documento aparezcan una serie de caracteres inesperados, por lo general 
. Estos caracteres son el BOM.
Las siglas corresponden a Byte Order Mark, ‘Marca de Orden de Byte’2, y es una firma (signature) o marca que incluyen algunas aplicaciones al comienzo de un documento para indicar que específicamente el texto contenido es Unicode. La marca es EF BB BF
, y es la que crea los caracteres indeseados.
Aunque en el caso de UTF-8 no tiene utilidad real, en UTF-16 y UTF-32 indica lo que en inglés se llama endiannes, u orden en el que se almacenan los bytes, y —por explicarlo de una manera harto simplificada— tiene que ver con la dirección de lectura de los diversos idiomas. Dependiendo de si el texto se lee de izquierda a derecha o de derecha a izquierda, el BOM será big-endian o little-endian3, respectivamente.
Qué no cunda el pánico. En la página informativa del W3C con respecto a este tópico ofrecen tres soluciones:
Por los problemas que suponen las soluciones 1 —a veces los caracteres en un editor son invisibles— y 3 —hay que saber Perl—, nos queda comprobar cómo hemos guardado el archivo. Como ejemplo, en Dreamweaver 8, tanto si sobre el documento comprobamos con botón derecho Propiedades de página… → Titulo/Codificación
como si elegimos Archivo… → Guardar como… aparece una casilla de verificación, «Incluir firma Unicode BOM»: basta con no marcarla.
Otras aplicaciones se referirán a ello de manera similar.
BOM son también las siglas de Browser Object Model, ‘Modelo de Objeto de Navegador’, que define para JavaScript objetos tales como window
.
El bom también es uno de los enemigos clásicos de la saga Final Fantasy…