Unicode-Normalisierer
Dieselbe sichtbare Zeichenfolge kann als unterschiedliche Byte-Sequenz gespeichert werden, je nachdem, ob ein Akzent als ein einzelner Codepunkt oder als Buchstabe plus kombinierendes Zeichen vorliegt. Dieser Normalisierer wandelt Text zwischen den vier Unicode-Normalisierungsformen (NFC, NFD, NFKC, NFKD) um, damit Ihre Zeichenfolgen in Datenbanken, Suchindizes, Deduplizierungsskripten und Regex-Abgleichen sauber verglichen werden.
So normalisieren Sie Unicode-Text
-
1
Eingabe einfügen
Fügen Sie die Zeichenfolge ein: akzentuierte Buchstaben, CJK-Text, Ligaturen, alles, was inkonsistent wirkt.
-
2
Eine Form wählen
Wählen Sie NFC (komponiert, die übliche Webform), NFD (dekomponiert), NFKC (kompatibel komponiert) oder NFKD (kompatibel dekomponiert).
-
3
Die Werte vergleichen
Das Tool nennt die Zeichenzahl (Codepunkte) und die Byte-Länge davor und danach, damit Sie sehen, ob die Form die Zeichenfolge verkürzt oder verlängert hat.
-
4
Die normalisierte Ausgabe kopieren
Verwenden Sie das Ergebnis in Ihrer Datenbank, API-Nutzlast, im Slug-Generator oder in einer Testfixture.
Die vier Formen und wann man welche verwendet
Die Unicode-Normalisierung ist im Standardanhang UAX #15 definiert. Die vier Formen unterscheiden sich entlang zweier Achsen: kanonisch gegenüber kompatibel und komponiert gegenüber dekomponiert.
Direkter Vergleich
| Form | Komposition | Zuordnung | Wann zu verwenden |
|---|---|---|---|
| NFC | Komponiert | Nur kanonisch | Standard für Webinhalte, Datenbanken, Dateinamen |
| NFD | Dekomponiert | Nur kanonisch | Textverarbeitung, die Akzente pro Zeichen entfernt |
| NFKC | Komponiert | Inkl. Kompatib. | Suche, Bezeichner, Spamfilter, Anzeige-Faltung |
| NFKD | Dekomponiert | Inkl. Kompatib. | Aggressive Normalisierung vor dem Entfernen von Diakritika |
Kanonische Formen bewahren die Bedeutung
Tippen Sie é und wechseln Sie die Formen. NFC meldet 1 Zeichen und 2 Bytes (den einzelnen Codepunkt U+00E9), NFD dagegen 2 Zeichen und 3 Bytes (ein einfaches e gefolgt von einem kombinierenden Akut, U+0301). Beide sehen auf dem Bildschirm identisch aus, sind aber unterschiedliche Byte-Sequenzen, und genau diese Diskrepanz behebt die Normalisierung. Kanonische Formen ordnen nur die Bytes neu an, sodass é in beiden Formen immer den Buchstaben e mit Akut bedeutet.
Was “Kompatibilität” tatsächlich ändert
Die K-Formen (NFKC, NFKD) schreiben außerdem Zeichen um, die verwandt aussehen, aber eine andere Formatierung tragen. Das ist verlustbehaftet: Sie erhalten das Original nicht zurück. Zum Beispiel:
fi(U+FB01, lateinische kleine Ligatur fi) wird zufi(zwei Buchstaben)①(U+2460, umkreiste Ziffer eins) wird zu1㌀(U+3300, das CJK-Quadrat “apaato”) wird zuアパート- Vollbreites
A(U+FF21) wird zuA
Das ist mächtig für Suche und Deduplizierung, aber destruktiv für die Typografie. Greifen Sie also nur zu den K-Formen, wenn die visuelle Treue keine Rolle spielt.
Eine praktische Regel
- Speichern Sie Nutzerinhalte in NFC.
- Vergleichen Sie Bezeichner in NFC, damit
caféals ein Codepunkt undcaféalse+ U+0301 übereinstimmen; wechseln Sie zu NFKC, wenn auchfiundfioder vollbreitesAundAgleich sein sollen, wie es die Bezeichnerregeln in UAX #31 vorsehen. - Erzeugen Sie akzentfreie Slugs, indem Sie auf NFD normalisieren und den Block der kombinierenden Zeichen U+0300 bis U+036F entfernen.
Häufig gestellte Fragen
In der Regel bedeutet das, dass Ihre Eingabe bereits in der Zielform vorlag. Fügen Sie Text ein, der Quellen mischt (ein Mac-Dateiname, ein kopierter PDF-Ausschnitt, eine Zeile aus einer alten Datenbank), und es ist viel wahrscheinlicher, dass sich Zeichen- und Byte-Zahl ändern.
Für Anzeige-URLs NFC. Für Slugs, bei denen Sie reines ASCII möchten, normalisieren Sie auf NFD, entfernen Sie die kombinierenden Zeichen mit einem Regex auf U+0300 bis U+036F und schreiben Sie dann alles klein. NFKD ist eine Alternative, wenn Sie auch Ligaturen und umkreiste Ziffern auflösen möchten.
Kanonische Formen (NFC, NFD) ändern niemals die Bedeutung, sie ordnen nur Bytes neu an. Kompatibilitätsformen (NFKC, NFKD) ändern sie sehr wohl: Ligaturen werden getrennt, vollbreite Buchstaben werden aufgelöst und Hochzahlen werden verflacht. Verwenden Sie sie nur, wenn genau das gewünscht ist.
Die Normalisierung läuft auf unserem Server über die PHP-Klasse Normalizer, und das Ergebnis kommt in derselben Anfrage zurück; Ihr Text wird nicht gespeichert. Wir protokollieren nur ein anonymes Ereignis, das festhält, welche Form angewendet wurde, niemals den Inhalt selbst.
Verwandte Tools
Domain-Name-Generator
Generieren Sie Domainnamen-Ideen aus einem Schlüsselwort: Präfixe, Suffixe, verdoppelte Buchstaben und Zahlen-Endungen in sechs gängigen TLDs.
Glitch-Text-Generator
Erstelle Zalgo-artigen Glitch-Text mit kombinierenden Unicode-Zeichen. Wähle die Intensität, prüfe Varianten und kopiere beschädigt wirkenden Text für Profile, Memes oder Horror-Posts.
Städtenamen-Generator
Generiere fiktive Namen für Städte, Kleinstädte, Dörfer und Hauptstädte für Worldbuilding, Karten, Spiele, Geschichten und Testdaten, mit kurzen Notizen zu jedem Ergebnis.
Pfeilsymbole zum Kopieren
Kopiere gängige Unicode-Pfeile mit einem Klick: gerade, doppelte, diagonale, hakenförmige, kreisförmige und dreieckige Pfeile für Dokumente, Chats und Designs.
Invertierter Textgenerator
Stellen Sie Text mit Unicode-Zeichen auf den Kopf, die wie gespiegelte Buchstaben aussehen, für Bios, Bildunterschriften und auffällige Social-Media-Beiträge.
Instagram Schriftgenerator
Generiere Unicode "Schriften" (fett, kursiv, Schreibschrift, Monospace, Fraktur), die direkt in dein Instagram-Bio, deinen Namen, Bildunterschriften und Kommentare eingefügt werden können.
Tool in anderen Sprachen verfügbar
- ตัวปรับข้อความให้เป็นมาตรฐาน Unicode [TH]
- مُطبِّع Unicode [AR]
- Unicode-normaliseerder [NL]
- Unicode-normaliserare [SV]
- Normaliseur Unicode [FR]
- Normalizator Unicode [PL]
- Unicode正規化ツール [JA]
- Penormal Unicode [ID]
- Normalizador Unicode [PT]
- Normalizador Unicode [ES]
- 유니코드 정규화기 [KO]
- Bộ chuẩn hóa Unicode [VI]
- Unicode Normalizer [EN]
- Normalizzatore Unicode [IT]
- Нормализатор Unicode [RU]
- Unicode Normalleştirici [TR]
- Unicode 规范化工具 [ZH]