Zum Inhalt springen
Ghostchars

Ohne Breite und unsichtbar

ZERO WIDTH NO-BREAK SPACE (U+FEFF)

Das Byte Order Mark, U+FEFF, das Editoren und Fehlermeldungen meist als ufeff schreiben. 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
Auch geschrieben als
ufeff\ufeff
Standardmäßig entfernt
Ja
Zuständige Option
Keine Option nötig
Kann tragend sein
Nein

U+FEFF kopieren und einfügen

So kopierst du ZERO WIDTH NO-BREAK SPACE (U+FEFF) und fügst es ein: Drück den Button, dann liegt das Zeichen selbst in deiner Zwischenablage, und Strg+V (Cmd+V auf dem Mac) fügt es überall ein, wo du tippen kannst.

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. Es kommt auch beim Einfügen mit: Kopierst du eine Tabellenzelle, eine Zeile aus einem Editor oder den Inhalt eines Webformulars, kann der Text mit einem unsichtbaren Zeichen beginnen, das Suchfeld sieht dabei völlig normal aus, und die Suche findet trotzdem nichts.

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

ZERO WIDTH NO-BREAK SPACE (U+FEFF) vor und nach dem Reinigen, das versteckte Zeichen als beschriftete Marke
Referenzkarte zu diesem Zeichen: der Codepoint, das Urteil und dasselbe Vorher und Nachher in einem Bild.
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.

Steckt der Text in einer Datei statt in der Zwischenablage? Der Dokumentbericht für .docx, .odt und .html findet das Zeichen in der Datei, zusammen mit ausgeblendeten Textabschnitten und nachverfolgten Änderungen, ohne dass du sie öffnen musst. Wenn es um den übrigen Text statt um dieses eine Zeichen geht, kannst du die Streuung der Satzlängen messen und sehen, wo jede Gewohnheit auftritt, ohne Punktzahl und ohne Aussage darüber, wer den Text geschrieben hat.

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 beginnt der eingefügte Text mit einem unsichtbaren Zeichen?

Fast immer ist es ein BOM, das beim Kopieren mitgereist ist: Die Quelle hat U+FEFF vorangestellt, und es ist mit allen sichtbaren Zeichen dahinter mitgekommen. Die Voreinstellung entfernt es. Wenn du es vorher sehen willst, füge den Text hier ein und schalte auf »Verstecktes zeigen«: Dort wird das ufeff vor dem ersten Buchstaben markiert.

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.

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 TextIn Chrome schon beim Einfügen säubernAuf dem Mac mit einem Tastenkürzel säubernAlle Zeichen

Anonyme Nutzungsstatistik?

Ghostchars verarbeitet deinen Text im Browser und lädt ihn nie hoch. Wir würden gern Seitenaufrufe zählen, und zwar über einen selbst gehosteten, cookie-armen Analyse-Endpunkt, der niemals Inhalte erfasst.