BOM (2)

Mientras elaboraba la entrada previa, me topé con algo curioso. Primero, inicialmnete encontré una referencia4 que indicaba como fácilmente colocar la BOM desde la línea de comando con:

$ sed -i '1s/^/\xEF\xBB\xBF/' archivo

pero que en el caso de macOS 15 usando BASH, debí recurrir a

$ sed -i '' -e '1s/^/\xEF\xBB\xBF/' archivo

Ya he probado el comando en un Kali (linux), debiendo ser escrito en igual forma que en macOS (haciendo uso de ZSH también).

Cuando uno trabaja con unices en diversas plataformas, uno se topa con estas pequeñas variantes o diferencias. Algunas pueden ser… notorias pero raras, así como hay otras más frecuentes pero no muy «impactantes» o sobresalientes. Como sea, ya trabajando con las adecuaciones necesarias, resultó que para UTF-32 lo siguiente no me funcionó (aunque uno esperaría que así fuera por extensión a los comandos incialmente mostrados en la entrega previa):

$ sed -i '1s/^/\xFF\xFE\x00\x00/' archivo

En macOS la firma termina siendo reconocida como UTF-16, mas no así en Kali. ¿Por qué? Bueno, hay posibles explicaciones pero creo que ellas deberán reservarse para otro momento. Al final, en macOS debí recurrir a

$ printf '\xFF\xFE\x00\x00' | cat - archivo > archivo

para obtener el resultado buscado.

Referencias

  1. «Marca de orden de bytes«, Wikipedia, web. Visited: 2025.05.20. URL: https://es.wikipedia.org/wiki/Marca_de_orden_de_bytes.
  2. «Byte order mark«, Wikipedia, web. Visited: 2025.04.09. URL: https://en.wikipedia.org/wiki/Byte_order_mark.
  3. «List of file signatures«, Wikipedia, web. Visited: 2025.05.22. URL: https://en.wikipedia.org/wiki/List_of_file_signatures
  4. «HOW TO: Put Byte Order Mark (BOM) in a file to make trademark/UTF-8 encoded characters read properly«, Informática Inc., web. Published: 2022.05.19; visited: 2025.05.23. URL: https://knowledge.informatica.com/s/article/300002?language=en_US.

Siguiente

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.