BOM
El BOM (marca de orden de bytes) es el carácter Unicode U+FEFF, colocado al inicio de un flujo de texto para indicar la forma de codificación y el orden de bytes.
Propósito
Señala el orden de bytes big- o little-endian en UTF-16/UTF-32 y sirve de firma de codificación en UTF-8 (aunque UTF-8 no tenga ambigüedad de orden de bytes).
Mecanismo
U+FEFF se traduce a bytes según la forma de codificación: EF BB BF en UTF-8, FF FE en UTF-16LE y FE FF en UTF-16BE. Un decodificador lee los primeros bytes y los compara con BOM conocidos para determinar la codificación. U+FEFF en sí es un espacio de no separación de anchura cero, por lo que puede servir también de firma.
Casos de uso
- Detección automática de la codificación de archivos de texto
- Intercambio de texto entre plataformas
- Marcadores de codificación para archivos CSV/TSV
- Codificación de archivos exportados de bases de datos
Ejemplos
- entrada
UTF-8 BOMOutputEF BB BFThe first three bytes of a file
Errores comunes
- A UTF-8 BOM being rejected by a JSON parser (RFC 8259 forbids it)
- Do not use a BOM in JSON files
Términos relacionados
UTF-8
UTF-8 es la forma de codificación de longitud variable de Unicode que usa de 1 a 4 bytes por punto de código; es totalmente retrocompatible con ASCII y el estándar de facto de la web y de los sistemas modernos. GLOSARIO
UTF-16
UTF-16 es la forma de codificación de longitud variable de Unicode que usa 2 o 4 bytes por punto de código: los caracteres del BMP ocupan una unidad de código de 16 bits y los del plano suplementario, un par sustituto (2 unidades). GLOSARIO
Endianness
El endianness es el orden de bytes de los valores multibyte en memoria: big-endian almacena primero el byte más significativo, little-endian primero el menos significativo. GLOSARIO
Byte Order Mark
La marca de orden de bytes (BOM) es el carácter U+FEFF colocado al inicio de un texto Unicode para indicar la forma de codificación y el orden de bytes. GLOSARIO
Unicode
Unicode es el estándar internacional de codificación de caracteres que asigna un punto de código único (U+0000 a U+10FFFF) a cada carácter de casi todos los sistemas de escritura del mundo, con un espacio de 1.114.112 puntos. GLOSARIO
Herramientas relacionadas
Detector de codificación
Comprueba la codificación del texto: subconjunto ASCII, BOM de UTF-8 y caracteres no ASCII. La entrada de texto siempre se recodifica como UTF-8, por lo que las codificaciones heredadas (GBK/Big5/Shift-JIS) no se pueden distinguir. Gratis, privado, 100% del lado del cliente. HERRAMIENTA
Referencia de juegos de caracteres
Reference table of character encodings. Gratis, privado, 100% del lado del cliente. HERRAMIENTA
Añadir BOM a archivo
Añadir BOM UTF-8 al contenido del archivo. HERRAMIENTA
Eliminación de BOM de archivo
Eliminar BOM UTF-8 del contenido del archivo. HERRAMIENTA