Saltar al contenido principal
CSV First Aid

¿Qué es un BOM en un CSV y por qué lo rompe todo?

El BOM (Byte Order Mark) son 3 bytes invisibles al inicio del archivo que causan una cantidad desproporcionada de dolor. Esta guía explica qué es, por qué existe y cómo deshacerse de él.

¿Qué es un BOM?

BOM significa Byte Order Mark. Para UTF-8 es la secuencia de bytes EF BB BF (U+FEFF). Fue diseñado para señalar la codificación de un archivo de texto — un lector ve estos bytes y sabe que el archivo es UTF-8.

Para UTF-16 y UTF-32 el BOM es esencial porque esas codificaciones pueden ser big-endian o little-endian. Para UTF-8 es innecesario porque UTF-8 no tiene ambigüedad de orden de bytes. El estándar Unicode dice explícitamente que el BOM no es 'ni requerido ni recomendado' para UTF-8.


¿Por qué Excel lo añade?

Cuando haces Guardar Como → CSV UTF-8 en Excel, añade un BOM para que el propio Excel pueda detectar la codificación al reabrir. Es una decisión de diseño centrada en Microsoft que funciona genial dentro del ecosistema Excel y rompe todo lo demás.


¿Qué se rompe?

El módulo csv de Python: el primer encabezado se vuelve '\ufeffid' en vez de 'id'. Las claves de DictReader no matchean. Pandas: la primera columna se llama '\ufeffcolumn_name'. SQL BULK INSERT: rechaza el archivo o mete el BOM en los datos de la primera fila. Parsers JSON: fallan si el BOM precede al contenido JSON. Herramientas de shell: grep, awk, cut ven el BOM como parte del primer campo.


Cómo eliminarlo

Python: open('file.csv', encoding='utf-8-sig') — el sufijo 'sig' le dice a Python que elimine el BOM. En Node.js: buffer.toString('utf8').replace(/^\uFEFF/, ''). En Bash: sed -i '1s/^\xEF\xBB\xBF//' file.csv. O simplemente suelta el archivo en CSV First Aid — un clic.


¿Debería añadir un BOM alguna vez?

Solo si tu único consumidor es Excel. Si el archivo lo procesa cualquier otro tool (Python, bases de datos, APIs, shell scripts), omite el BOM. CSV First Aid te permite añadir BOM al exportar para compatibilidad con Excel — pero solo cuando lo activas explícitamente.

¿No quieres tocar editores hex? CSV First Aid detecta y elimina el BOM por ti.

Arregla tu CSV ahora →

Herramientas relacionadas