Zum Inhalt springen
Ghostchars

Ohne Breite und unsichtbar

ZERO WIDTH NO-BREAK SPACE (U+FEFF)

Das Byte Order Mark. Ganz am Anfang einer Datei kündigt es die Kodierung an; überall sonst ist es ein unsichtbares, umbruchverbietendes Nichts, von dem Unicode seit Version 3.2 abrät.

Codepoint
U+FEFF
Standardmäßig entfernt
Ja
Zuständige Option
Keine Option nötig
Kann tragend sein
Nein

Woher es kommt

Windows-Editoren, Excel-Exporte und alles, was „UTF-8 mit BOM“ schreibt. Hängt man mehrere solcher Dateien aneinander, steht mitten im Ergebnis ein BOM. Auch beim Kopieren aus einer Tabellenzelle kommt oft eines mit.

Warum es zählt

Ein BOM am Anfang bringt JSON-Parser, YAML-Kopfdaten, Shebang-Zeilen und CSV-Kopfzeilen zu Fall; ein BOM mitten im Text ist schlicht ein unsichtbares Zeichen, an dem jeder exakte Vergleich scheitert. Es ist auch der Grund, warum eine Konfigurationsdatei „völlig in Ordnung aussieht“ und trotzdem nicht lädt.

Vorher und nachher

VorherU+FEFF{"ok": true}
Nachher{"ok": true}

Das unsichtbare erste Zeichen ist der Grund, warum `JSON.parse` diese Zeichenkette ablehnt.

Das Zeichen wird als beschriftete Marke dargestellt, damit du siehst, wo es sitzt. In deinem Text zeichnet es überhaupt nichts.

Wann es berechtigt ist

Als allererstes Zeichen einer Datei, als Kodierungssignatur – und das ist eine Eigenschaft der DATEI, nicht des Textes. Sobald der Text in einem Eingabefeld liegt, gibt es kein berechtigtes BOM mehr.

So entfernst du es

Die Voreinstellung entfernt es, egal wo es steht. Ghostchars arbeitet auf Text, also behandelt es auch das führende BOM als Text.

Ist das ein KI-Wasserzeichen?

Kein Wasserzeichen

Nein. Ein BOM ist ein Kodierungsartefakt aus Editoren und Export-Pipelines. Es sagt etwas über das Programm aus, das die Datei gespeichert hat, und nichts darüber, wer die Wörter geschrieben hat.

Keine Verbindung zu maschinell erzeugtem Text. Es kommt aus einer Software, von einer Tastatur oder von einem Menschen.

Fragen

Warum lässt sich mein JSON nicht parsen?

Ein führendes BOM ist ein Zeichen vor der öffnenden Klammer. Die meisten JSON-Parser lehnen es als unerwartetes Token ab, und die Fehlermeldung zeigt auf Position 0, wo nichts zu sehen ist.

Ist das dasselbe wie ein Wortverbinder?

Mitten im Text verhalten sich beide gleich. Unicode rät von U+FEFF in dieser Rolle ab und hat U+2060 WORD JOINER zum richtigen Zeichen erklärt; U+FEFF ist seither nur noch das Byte Order Mark.

Muss ich es jemals behalten?

Nur wenn ein nachgelagertes Werkzeug auf einer Datei mit BOM besteht – und dann fügst du es beim Schreiben der Datei hinzu, statt es im Text mit dir herumzutragen.

Prüf deinen eigenen Text

Füg irgendetwas in den Textreiniger ein und sieh jedes unsichtbare Zeichen darin – mit Position, Codepoint und dem, was mit jedem einzelnen passiert. Nichts wird hochgeladen.

Prüf deinen eigenen TextAlle Zeichen