UTF-8 con y sin BOM

1. ¿Qué es el BOM en UTF-8?

El Byte Order Mark (BOM) es un conjunto especial de bytes al inicio de un archivo de texto, que indica la codificación utilizada.

En UTF-8, el BOM está representado por los bytes:

EF BB BF

Este marcador no es obligatorio en UTF-8, pero algunos programas lo utilizan para identificar el formato del archivo.

2. Diferencias entre UTF-8 con BOM y UTF-8 sin BOM

Característica UTF-8 con BOM UTF-8 sin BOM
Presencia de marcador BOM Sí (EF BB BF) No
Compatibilidad con sistemas Pueden causar problemas en algunos programas Más compatible
Uso en archivos de código fuente No recomendado Recomendado
Sistemas UNIX/Linux Puede mostrarse como caracteres basura () No causa problemas

3. Cuándo usar cada uno

✅ Usar UTF-8 sin BOM:

  • Archivos de código fuente en C, Python, JavaScript, HTML, etc.
  • Archivos de configuración en sistemas Linux/UNIX
  • Interoperabilidad con herramientas de procesamiento de datos

✅ Usar UTF-8 con BOM:

  • Documentos de texto en programas como Microsoft Word
  • Archivos que serán abiertos en Windows

4. Cómo verificar si un archivo tiene BOM

En Linux/macOS puedes usar el comando:

xxd -p archivo.txt | head -n 1

Si ves EF BB BF, el archivo tiene BOM.

5. Cómo eliminar el BOM

Si un archivo tiene BOM y deseas eliminarlo:

  • En Notepad++: Codificación > Convertir a UTF-8 sin BOM
  • En Linux:
  • sed -i '1s/^\xEF\xBB\xBF//' archivo.txt

Conclusión

En general, UTF-8 sin BOM es mejor para archivos de código y configuraciones, mientras que UTF-8 con BOM puede ser útil para documentos de texto en ciertos programas.

 

Comentarios

Entradas populares de este blog

Edición y Estructura de Archivos ELF

Análisis de Archivos ELF y Llamadas al Sistema