Largeur nulle et invisibles
ZERO WIDTH NO-BREAK SPACE (U+FEFF)
L'indicateur d'ordre des octets, U+FEFF, que les éditeurs et les messages d'erreur écrivent le plus souvent ufeff. Tout au début d'un fichier, il annonce l'encodage ; partout ailleurs, c'est un rien invisible et insécable, dont Unicode déconseille cet usage depuis la version 3.2.
- Point de code
U+FEFF- Autres notations
ufeff\ufeff- Catégorie
- Largeur nulle et invisibles
- Supprimé par défaut
- Oui
- Option qui le régit
- Aucune option nécessaire
- Peut être porteur
- Non
Copier-coller U+FEFF
Pour copier-coller ZERO WIDTH NO-BREAK SPACE (U+FEFF), appuyez sur le bouton : le caractère lui-même part dans votre presse-papiers, et Ctrl+V (Cmd+V sur Mac) le colle partout où vous pouvez écrire.
D'où il vient
Les éditeurs Windows, les exports d'Excel et tout ce qui écrit de l'« UTF-8 avec BOM ». Concaténer plusieurs fichiers de ce genre laisse un BOM au milieu du résultat. Il arrive aussi par le collage : copiez une cellule de tableur, une ligne d'éditeur ou le contenu d'un formulaire web et le texte peut commencer par un caractère invisible ; le champ de recherche a l'air parfaitement ordinaire et la requête échoue quand même.
Pourquoi il compte
Un BOM en tête casse les analyseurs JSON, les en-têtes YAML, les shebangs de scripts et les en-têtes CSV ; un BOM au milieu est simplement un caractère invisible qui met en échec toute comparaison exacte. C'est aussi la raison pour laquelle un fichier de configuration « a l'air normal » et refuse de se charger.
Avant et après
Ce premier caractère invisible est la raison pour laquelle `JSON.parse` refuse cette chaîne.
Le caractère est affiché sous forme de pastille étiquetée, pour que vous voyiez où il se place. Dans votre texte, il ne dessine absolument rien.
Quand il est légitime
Comme tout premier caractère d'un fichier, en guise de signature d'encodage, ce qui est une propriété du FICHIER, pas du texte. Une fois le texte dans une zone de collage, il n'y a plus de BOM légitime.
Comment le supprimer
La passe par défaut le supprime, où qu'il se trouve. Ghostchars travaille sur du texte, donc il traite le BOM de tête comme du texte lui aussi.
Votre texte est dans un fichier plutôt que dans le presse-papiers ? Le rapport du document pour .docx, .odt et .html le trouve à l'intérieur du fichier, avec les passages masqués et les modifications suivies, sans que vous ayez à l'ouvrir. Si la question porte sur le reste de l'écriture plutôt que sur ce seul caractère, vous pouvez mesurer la variation de longueur des phrases et voir où se trouve chaque habitude, sans note et sans rien affirmer sur la personne qui a écrit le texte.
Est-ce un filigrane d'IA ?
Ce n'est pas un filigrane
Non. Un BOM est un artefact d'encodage produit par les éditeurs et les chaînes d'export. Il dit quelque chose sur l'outil qui a enregistré le fichier, et rien sur qui a écrit les mots.
Aucun lien avec un texte généré par une machine. Il vient d'un logiciel, d'un clavier ou d'une personne.
Questions
Pourquoi le texte que j'ai collé commence-t-il par un caractère invisible ?
C'est presque toujours un BOM qui a voyagé avec la copie : la source a écrit U+FEFF en tête, et il est venu avec tous les caractères visibles qui suivent. La passe par défaut le supprime. Pour le voir avant de nettoyer, collez le texte ici et passez à « Voir ce qui est caché » : le ufeff placé devant la première lettre y est signalé.
Pourquoi mon JSON refuse-t-il de s'analyser ?
Un BOM en tête est un caractère placé avant l'accolade ouvrante. La plupart des analyseurs JSON le rejettent comme jeton inattendu, et l'erreur pointe la position 0, où l'on ne voit rien.
Est-ce la même chose qu'un liant de mots ?
Au milieu d'un texte, les deux se comportent de la même façon. Unicode a déconseillé U+FEFF pour cet usage et a fait de U+2060 WORD JOINER le caractère correct, laissant à U+FEFF le seul rôle d'indicateur d'ordre des octets.
Vérifier votre propre texte
Collez n'importe quoi dans le nettoyeur pour voir tous les caractères invisibles qu'il contient, avec leur position, leur point de code et ce qui arrive à chacun. Rien n'est envoyé.
Vérifier votre propre texteNettoyer dans Chrome au moment du collageNettoyer sur votre Mac avec un raccourci clavierTous les caractères