Unsichtbarer Zeichendetektor

Füge beliebigen Text ein und der Detektor meldet jedes unsichtbare Zeichen, das er enthält: Nullbreiten-Leerzeichen, Richtungsmarken, BOMs, weiche Bindestriche, nicht trennende Leerzeichen und die Gruppe von Unicode-Steuer-Codepunkten, die wie leere Luft aussehen, aber Suche, Diff und Kopieren/Einfügen stören. Jeder Treffer wird mit seinem Codepunkt (U+200B), seinem offiziellen Unicode-Namen und seiner Position im String angezeigt, sodass du genau feststellen kannst, wo ein mysteriöser Fehler versteckt ist, bevor du ihn entfernst.

So erkennst du unsichtbare Zeichen

  1. 1

    Füge den Text ein

    Gib die verdächtige Zeichenfolge ein, einen Codeausschnitt, eine kopierte Nachricht, einen Konfigurationswert.

  2. 2

    Starte den Scan

    Das Tool durchläuft jeden Codepunkt und kennzeichnet alle, die mit der Liste der unsichtbaren/Formatzeichen übereinstimmen.

  3. 3

    Überprüfe den Bericht

    Jeder Treffer zeigt seine Position (1-basiert), seinen Codepunkt in `U+HHHH`-Form und seinen Unicode-Namen (Nullbreiten-Leerzeichen, BOM usw.).

  4. 4

    Bereinige den Text

    Verwende die Ersetzungsaktion, um die versteckten Zeichen zu entfernen oder sichtbar zu machen, und füge dann die bereinigte Version wieder ein.

Unsichtbare Zeichen und woher sie kommen

Diese Zeichen existieren aus legitimen Gründen (Textlayout, Schreibrichtung, kombinierende Zeichen). Sie werden zu Fehlern, wenn sie aus dem Kontext, für den sie entworfen wurden, in Code, Konfiguration, Suchanfragen oder Benutzernamen gelangen.

Zeichen, nach denen der Detektor sucht

Codepunkt Name Wo es normalerweise eindringt
U+200B Nullbreiten-Leerzeichen Rich-Text-Editoren, Textverarbeitungsprogramme
U+200C Nullbreiten-Nichtverbinder Persisch, Hindi-Typografie
U+200D Nullbreiten-Verbinder Emoji-Sequenzen, indische Schriften
U+200E Links-nach-Rechts-Markierung Text, der sowohl LTR- als auch RTL-Skripte enthält
U+200F Rechts-nach-Links-Markierung Dasselbe
U+202A..E Einbettung / Überschreibung Dasselbe; manchmal böswillig verwendet (Trojan Source)
U+2028 Zeilen-Trennzeichen Aus Word kopiert, bricht JSON-Encoder
U+2029 Absatz-Trennzeichen Dasselbe
U+FEFF Byte-Reihenfolge-Markierung Dateien, die als UTF-8 mit BOM in Notepad gespeichert sind
U+00A0 Nicht trennendes Leerzeichen Typografischer Leerraum aus Word
U+00AD Weicher Bindestrich Trennungs-Hinweise in Rich Text

Häufige Symptome eines versteckten Zeichenfehlers

  • Ein String-Vergleich, der “gleich” sein sollte, ist es nicht. Kopiere die Werte in dieses Tool und überprüfe die Byte-Zahlen.
  • Ein Regex, das mit dem Auge übereinstimmt, aber im Code fehlschlägt. Oft ein U+00A0, das sich als Leerzeichen tarnt.
  • Ein JSON-Parser stürzt bei einem eingefügten Payload ab. Normalerweise ein BOM am Anfang oder U+2028 in einem String-Literal, das JavaScript innerhalb von JSON ablehnt.
  • Der SEO-Titel hat die falsche Länge. Ein Nullbreiten-Leerzeichen überschreitet ohne sichtbare Änderung ein Limit.

Der Trojan Source-Winkel

Bidirektionale Überschreibungszeichen (U+202E, U+2066..U+2069) können Quellcode in einer Reihenfolge rendern, während er in einer anderen kompiliert wird, die “Trojan Source”-Angriffsart. Wenn du Code von unzuverlässigen Mitwirkenden überprüfst, lasse ihre Diffs durch diesen Detektor laufen, bevor du sie zusammenführst.

Häufig gestellte Fragen

Notepad und einige ältere Windows-Tools verwenden standardmäßig “UTF-8 mit BOM”. Das BOM (U+FEFF) ist für Windows-Anwendungen in Ordnung, stört jedoch viele Shell-Pipelines, PHP-Dateien (das BOM wird als Ausgabe vor dem <?php-Tag ausgegeben) und JSON-Parser.

Es sieht auf dem Bildschirm wie ein reguläres Leerzeichen aus, verhält sich jedoch anders: Es erlaubt keinen Zeilenumbruch und wird von den meisten \s-Regex-Varianten in allen Sprachen nicht erkannt. Es landet oft in Dateipfaden, E-Mail-Adressen und Benutzernamen, die aus Rich-Text-Quellen kopiert wurden.

Nicht immer. In arabischem, persischem oder devanagari Text sind der Nullbreitenverbinder und der Nichtverbinder semantisch erforderlich. In Code, Konfiguration und den meisten englischen Texten kannst du frei entfernen. In Inhalten in natürlicher Sprache verwende den Detektor zur Überprüfung, bevor du entfernst.

Nein, die Analyse läuft für die aktuelle Anfrage und nichts, was du einfügst, wird nach dem Erstellen der Antwort gespeichert oder protokolliert.

Verwandte Tools

Tool in anderen Sprachen verfügbar