Ancho cero e invisibles
ZERO WIDTH NO-BREAK SPACE (U+FEFF)
La marca de orden de bytes. Al principio de un archivo anuncia la codificación; en cualquier otro sitio es una nada invisible e inseparable que Unicode desaconseja para ese uso desde la versión 3.2.
- Punto de código
U+FEFF- Categoría
- Ancho cero e invisibles
- Se elimina por defecto
- Sí
- Opción que lo gobierna
- No hace falta ninguna opción
- Puede cumplir una función
- No
De dónde viene
Editores de Windows, exportaciones de Excel y todo lo que escribe “UTF-8 con BOM”. Al concatenar varios archivos así queda un BOM en mitad del resultado. Copiar la celda de una hoja de cálculo suele arrastrar uno.
Por qué importa
Un BOM al principio rompe los analizadores de JSON, el front matter de YAML, los shebangs y las cabeceras de un CSV; un BOM en mitad del texto es sencillamente un carácter invisible que echa a perder cualquier comparación exacta. También es la razón de que un archivo de configuración “se vea bien” y no cargue.
Antes y después
Ese primer carácter invisible es la razón de que `JSON.parse` rechace esta cadena.
El carácter se muestra como una etiqueta con nombre para que veas dónde está. En tu texto no dibuja absolutamente nada.
Cuándo es legítimo
Como primer carácter de un archivo, en calidad de firma de codificación, que es una propiedad del ARCHIVO y no del texto. Una vez que el texto está en una caja de pegado ya no queda ningún BOM legítimo.
Cómo eliminarlo
La pasada por defecto lo elimina, esté donde esté. Ghostchars trabaja sobre texto, así que trata el BOM inicial como texto también.
¿Es una marca de agua de IA?
No es una marca de agua
No. Un BOM es un artefacto de codificación que producen los editores y las cadenas de exportación. Habla de la herramienta que guardó el archivo y no dice nada de quién escribió las palabras.
No tiene ninguna relación con el texto generado por máquinas. Viene de un programa, de un teclado o de una persona.
Preguntas
¿Por qué mi JSON no se puede analizar?
Un BOM inicial es un carácter que va antes de la llave de apertura. La mayoría de los analizadores de JSON lo rechazan como token inesperado, y el error apunta a la posición 0, donde no hay nada visible.
¿Es lo mismo que una unión de palabras?
En mitad del texto se comportan igual. Unicode desaconsejó el U+FEFF para ese uso y designó el U+2060 WORD JOINER como el carácter correcto, dejando el U+FEFF solo como marca de orden de bytes.
¿Alguna vez necesito conservarlo?
Solo si alguna herramienta posterior exige un archivo marcado con BOM, y entonces lo añades al escribir el archivo, no llevándolo a cuestas dentro del texto.
Comprueba tu propio texto
Pega lo que quieras en el limpiador para ver todos los caracteres ocultos que contiene, con su posición, su punto de código y lo que le pasa a cada uno. No se sube nada.