Text und Kodierung

Unicode- & i18n-Tools

Text, der auf dem Bildschirm identisch aussieht, aber einen Stringvergleich nicht besteht, ein eingefügter Text, der nach falscher Kodierung irgendwo in der Kette zu Zeichensalat wird, oder ein Nutzername, der legitim wirkt, aber Lookalike-Zeichen aus einer anderen Schrift nutzt – Unicode-Bugs bleiben unsichtbar, bis man mit dem richtigen Werkzeug unter den gerenderten Text schaut. Diese Seite deckt außerdem Locale-Tags und pluralisierte Nachrichtenformatierung für internationalisierte Apps ab.

Unicode-Inspektor zerlegt eine Zeichenfolge in Codepunkte, Grapheme und rohe UTF-8-Bytes, wo sich ein scheinbares Duplikat meist als Unterschied in der Normalisierungsform entpuppt. Unicode-Normalisierung zeigt NFC, NFD, NFKC und NFKD nebeneinander, sodass genau sichtbar wird, was sich ändert. Unsichtbare Zeichen erkennen deckt Zero-Width-Zeichen in eingefügtem Text auf, und Homoglyph-Erkennung markiert Lookalikes aus anderen Schriften, die reine Sichtprüfung übersehen würde.

9 Tools

FAQ zu Unicode & i18n-Tools

Warum schlägt ein Gleichheitstest bei zwei optisch identischen Strings fehl?

Sie sind wahrscheinlich mit unterschiedlichen Unicode-Normalisierungsformen kodiert – ein Umlaut kann ein einzelner kombinierter Codepunkt oder ein Grundbuchstabe plus separates Kombinationszeichen sein, beide sehen gleich aus, sind aber ungleich. Unicode-Normalisierung zeigt NFC, NFD, NFKC und NFKD nebeneinander, sodass genau erkennbar wird, welche Form jeder String nutzt.

Wie finde ich versteckte oder unsichtbare Zeichen in eingefügtem Text?

Unsichtbare Zeichen erkennen durchsucht eingefügten Text nach Zero-Width-Spaces, Joinern und anderen Zeichen, die als nichts gerendert werden und manchmal genutzt werden, um Inhalte vor Filtern zu verstecken oder zwei Strings optisch gleich aussehen zu lassen. Das lohnt sich zu prüfen, bevor man Text aus nicht vertrauenswürdiger Quelle übernimmt.

Was verursacht Mojibake, und lässt es sich nachträglich reparieren?

Mojibake entsteht, wenn Text, der in einem Zeichensatz – oft UTF-8 – kodiert wurde, als ein anderer dekodiert wird, etwa Latin-1 oder Windows-1252. Mojibake reparieren probiert die wahrscheinlichen Kodierungskombinationen durch und zeigt Reparaturkandidaten mit den zugrunde liegenden Bytes, sodass man die auswählt, die den Originaltext tatsächlich wiederherstellt.