La marca de orden de bytes o BOM (del inglés byte order mark) es una secuencia de bytes que indican el uso de una codificación Unicode, así como el orden de los bytes (lo que en inglés se le llama endianess). Se encuentra al principio de algunos archivos de texto y permite al software reconocer la codificación usada. Esto es especialmente útil cuando la codificación de un archivo no se especifica por otros medios (como podría ser por la extensió o metadatos). El BOM garantiza la gestión uniforme de archivos de texto en diferentes plataformas y aplicaciones de software y lo que reduce el riesgo de interpretaciones erróneas.
Para UTF-8 la secuencia es EF BB BF, representando tres caracteres. Para UTF-16 y UTF-32 es un carácter Unicode cuyo punto de código es U+FEFF (espacio sin salto de línea de ancho cero o zero-width no-break space en inglés). Así, tenemos:
- UTF-8 BOM
: EF BB BF - UTF-16 BOM (Big-endian)
: FE FF - UTF-16 BOM (Little-endian)
: FF FE - UTF-32 BOM (Big-endian)
: 00 00 FE FF - UTF-32 BOM (Little-endian
: FF FE 00 00
Realmente para UTF-8 se podría prescindir si ésta se toma como esquema de codificación por defecto, además de no tener «endianidad.» Para archivos UTF-16 y UTF-32, podrá observarse que el BOM indica si el orden de bytes es big-endian o little-endian, lo cual es fundamental para la correcta interpretación de las secuencias de bytes de Unicode.
¿Habría desventajas o problemas en el uso del BOM? Aunque su uso está más difundido, puede haber casos en los que programas o aplicaciones aún no reconozcan o gestionen correctamente el BOM, su inclusión puede ser redundante y causar problemas con algunos analizadores que no la esperan (herramientas de procesamiento de texto antiguas, sencillas u orientadas a ASCII pueden malinterpretar BOM como parte del contenido del texto). Adicionalmente, aunque es mínimo, el BOM añade bytes que pueden ser un problema en contextos donde el recuento exacto de bytes es importante. En el desarrollo web, la BOM puede generar problemas en la interpretación de CSS (podría causar errores de renderizado) y JavaScript (comportamientos inesperados).
Si bien el BOM ofrece importantes ventajas en cuanto a la detección automática de codificación y compatibilidad multiplataforma, su uso también puede presentar algunos inconvenientes en entornos o con software que no tiene considerada la presencia de la BOM. La decisión de usar BOM debe considerarse cuidadosamente en función de los requisitos específicos y el contexto de la aplicación.
¿Cómo agregar esta marca a un archivo? Si el programa con el que un archivo de texto no agrega el BOM y éste resulta necesario para otras actividades puede usarse, para un entorno de macOS (mediante BASH), lo siguiente:
Para UTF-8:
sed -i '' -e '1s/^/\xEF\xBB\xBF/' archivo
Para UTF-16:
sed -i '' -e '1s/^/\xFF\xFE/' archivo
Referencias
- «Marca de orden de bytes«, Wikipedia, web. Visited: 2025.05.20. URL: https://es.wikipedia.org/wiki/Marca_de_orden_de_bytes.
- «Byte order mark«, Wikipedia, web. Visited: 2025.05.20. URL: https://en.wikipedia.org/wiki/Byte_order_mark.

