Unicode-Inspektor
Zeigen Sie jedes Zeichen eines Textes mit Codepunkt und Namen an und finden Sie versteckte oder verwechselbare Zeichen.
Unicode-Inspektor wird geladen… Wenn nichts passiert, aktiviere JavaScript.
Ein Text, der auf dem Bildschirm identisch aussieht, kann darunter ganz anders aufgebaut sein. Ein aus einem PDF kopiertes Wort kann einen weichen Trennstrich enthalten, ein Benutzername ein Leerzeichen ohne Breite verstecken, ein Link das lateinische a gegen das kyrillische а tauschen, und ein Umlaut kann als ein einziges Zeichen oder als Grundbuchstabe plus kombinierendes Zeichen gespeichert sein. Der Unicode-Inspektor zerlegt jeden Text in die Zeichen, die Leser wahrnehmen (Graphem-Cluster), und listet jeden darin enthaltenen Codepunkt mit U+-Nummer, offiziellem Unicode-Namen, allgemeiner Kategorie und Block auf. So siehst du genau, womit du es zu tun hast.
Beispiele
é (one code point)
U+00E9 LATIN SMALL LETTER E WITH ACUTE
NFC-Form, 2 Byte in UTF-8.
é (two code points)
U+0065 + U+0301 COMBINING ACUTE ACCENT
NFD-Form: sieht identisch aus, ist beim Vergleich aber verschieden.
pаypal (with Cyrillic а)
U+0430 CYRILLIC SMALL LETTER A
Als Wort mit gemischten Schriften markiert.
Häufig gestellte Fragen
Wie finde ich ein Leerzeichen ohne Breite in meinem Text?
Was ist der Unterschied zwischen Zeichen, Codepunkt und Byte?
Warum stimmen zwei gleich aussehende Zeichenketten nicht überein?
Was sind NFC, NFD, NFKC und NFKD?
Was ist ein Homoglyphen- oder Mischschrift-Angriff?
Was sind bidirektionale Steuerzeichen und warum werden sie markiert?
Wird mein Text irgendwohin hochgeladen?
Woher stammen die Zeichennamen?
Über Unicode-Inspektor
Das Tool markiert die Zeichen, die meistens Ärger machen. Unsichtbare Formatzeichen wie das Leerzeichen ohne Breite, Zero-Width Joiner, Word Joiner und die Byte-Reihenfolge-Markierung (BOM); bidirektionale Steuerzeichen wie RLO und LRI, die Text optisch umsortieren können und die Grundlage des "Trojan Source"-Angriffs auf Quellcode waren; geschützte, schmale und andere ungewöhnliche Leerzeichen, die in Code oder Suche nicht einem normalen Leerzeichen entsprechen; leer aussehende Buchstaben, mit denen leere Namen vorgetäuscht werden; und Wörter, die lateinische mit kyrillischen oder griechischen Buchstaben mischen, der klassische Homoglyphen-Trick hinter Phishing-Domains. Emoji-Sequenzen werden erkannt, die Joiner in 👩🏽💻 gelten also nicht als verdächtig.
Klicke auf eine Zeile, um alle Darstellungen dieses Codepunkts zu sehen: UTF-8-Bytes, UTF-16-Codeeinheiten, numerische und benannte HTML-Entities, Escapes für JavaScript, CSS und Python sowie die URL-kodierte Form. Die Zähler über der Tabelle zeigen die Anzahl der Grapheme, Codepunkte, UTF-16-Einheiten (das, was length in JavaScript liefert) und UTF-8-Bytes. Das erklärt, warum eine Datenbankspalte, eine SMS oder ein Tweet deinen Text anders zählen, als du ihn siehst.
Der Bereich Normalisierung vergleicht die vier Unicode-Normalformen (NFC, NFD, NFKC, NFKD) und lässt dich jede kopieren oder untersuchen. So reparierst du Zeichenketten, die gleich aussehen, aber beim Vergleich durchfallen. Der Bereich Bereinigen entfernt schließlich unsichtbare und bidirektionale Zeichen, ersetzt exotische Leerzeichen durch normale, löscht verirrte Steuerzeichen und normalisiert das Ergebnis auf Wunsch, ohne Emoji zu beschädigen. Namen und Blöcke stammen aus der offiziellen Unicode Character Database, und alles läuft lokal in deinem Browser.
UTF-8 entstand auf einem Tischset
Im September 1992 waren Ken Thompson und Rob Pike von den Bell Labs mit der vorgeschlagenen Multibyte-Kodierung für den neuen universellen Zeichensatz unzufrieden. Beim Abendessen in einem Diner in New Jersey skizzierte Thompson auf einem Papier-Tischset ein besseres Schema: ASCII bleibt ein Byte, kein Byte einer Multibyte-Folge kann mit einem ASCII-Zeichen verwechselt werden, und den Anfang eines Zeichens findet man immer an den oberen Bits. Innerhalb weniger Tage setzten sie es im Betriebssystem Plan 9 um.
Dieses Schema ist UTF-8, und seine Abwärtskompatibilität zu ASCII ist der Grund, warum es das Web erobert hat, wo es heute die große Mehrheit der Seiten verwendet. Unicode selbst hatte einige Jahre früher begonnen, mit Joe Beckers Vorschlag von 1988 für einen "Unicode"-Zeichensatz und der ersten Version des Standards im Jahr 1991.
Die Flexibilität, die Unicode universell machte, brachte auch neue Sicherheitsprobleme. 2017 registrierte ein Forscher eine Domain aus lauter kyrillischen Buchstaben, die Browser als apple.com anzeigten, woraufhin die Browser solche Namen in Punycode-Form darstellten. 2021 zeigte das Paper Trojan Source der University of Cambridge, dass bidirektionale Steuerzeichen Quellcode anders aussehen lassen können, als der Compiler ihn liest.