ForHosting KIT · Entwickler-Tools

Unicode-NFD-Normalisierer

Das Wort café, geschrieben mit einem einzigen é, wird zu fünf Codepunkten: c, a, f, e und ein kombinierender Akut. Jeder vorgefertigte Buchstabe zerfällt in Grundbuchstabe und Akzentzeichen, sodass zwei gleich aussehende Texte gleich sind, sobald beide in NFD vorliegen. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
Text
café
Erhalten Sie
Ergebnis
café
Form
NFD
Länge (in)
4
Ausgabelänge
5

Die Unicode-Normalisierungsform D, kurz NFD, schreibt eine Zeichenkette so um, dass jedes präkomponierte Zeichen in ein Basiszeichen plus die kombinierenden Marken zerlegt wird, die sein Erscheinungsbild bestimmen. Ein café mit präkomponiertem e-akut wird zur fünfteiligen Codepunkt-Folge c-a-f-e plus kombinierender Akut; Hangul-Silben zerfallen in Jamo; Å wird zu A plus kombinierendem Ring.

Was die kanonische NFD-Zerlegung tatsächlich leistet

Unicode speichert viele akzentuierte Buchstaben auf zwei Arten: als einzelnen präkomponierten Codepunkt, etwa U+00E9 für das lateinische kleine e mit Akut, oder als Basisbuchstaben U+0065 gefolgt vom kombinierenden Akut U+0301. Beide Sequenzen sehen beim Rendern gleich aus, sind aber unterschiedliche Bytesequenzen, brechen String-Gleichheit und können Längenprüfungen, reguläre Ausdrücke und Unique-Constraints in Datenbanken überraschen.

Die Normalization Form D, definiert im Unicode Standard Annex 15, wendet die kanonische Zerlegung an: jedes Zeichen mit kanonischem Zerlegungs-Mapping wird durch dieses Mapping ersetzt, und kombinierende Marken werden nach ihrer Combining Class sortiert, sodass äquivalente Sequenzen identisch werden. NFD setzt danach nicht wieder zusammen; dieser Rekompositionsschritt ist NFC. NFD wendet auch keine Kompatibilitäts-Mappings an, daher bleibt eine Ligatur wie fi oder eine Fullwidth-Ziffer unverändert — die Kompatibilitätszerlegung gehört zu NFKD und NFKC.

Hangul-Silben erhalten eine spezielle algorithmische Zerlegung in führende, vokalische und schließende Jamo; deshalb kann ein kurzes koreanisches Wort mehrfach in der Codepunkt-Länge wachsen und dennoch derselbe sprachliche Text bleiben. Weil Mapping-Tabelle und Markenreihenfolge durch die Unicode-Version der Laufzeitumgebung festliegen, liefert dieselbe Eingabe auf einer gegebenen Engine immer dieselbe NFD-Zeichenkette. Diese Fähigkeit nutzt die JavaScript-Methode String.prototype.normalize mit der Form NFD, verfügbar in modernen Workern und Browsern, und ist deterministisch: keine Netzwerkanrufe, keine Zufallsseeds und keine Wanduhr-Zeitstempel fließen ins Ergebnis ein.

Wo NFD in der realen Ingenieursarbeit vorkommt

Such- und Autocomplete-Pipelines entfernen Diakritika oft nach NFD, damit cafe zu café passt, ohne handgeschriebene Akzenttabellen pro Sprache. Kennungs- und Slug-Generatoren zerlegen zuerst und streichen dann kombinierende Marken, wodurch stabile ASCII-ähnliche Schlüssel aus nutzerseitigen Titeln entstehen. Lokalisierungs-QA vergleicht zwei Exporte, die am Bildschirm gleich aussehen, aber Gleichheitstests erst bestehen, wenn beide Seiten auf NFD gezwungen sind.

Font- und Shaping-Ingenieure inspizieren zerlegte Sequenzen beim Debuggen von Markenverankerung und Glyphenersetzung. Sicherheitsprüfer normalisieren Benutzernamen und Domain-Labels vor Allow-List-Prüfungen, damit präkomponierte und zerlegte Lookalikes keinen Filter umgehen, der nur eine Form listete. Datenmigrationsjobs wandeln NFC-lastige Altbestände nach NFD um, wenn ein nachgelagertes System NFD als Speicherform dokumentiert.

Programmierkurse lehren Encoding, indem sie zeigen, dass ein sichtbares Zeichen nach NFD zwei Codepunkte werden kann; eine eigene Normalisierer-Landing bedient diese Suchintention besser, als sie unter allgemeinen Unicode-Codepunkt-Konvertern oder Base64-Werkzeugen zu vergraben. Bevorzugen Sie ein separates NFC- oder NFKC-Werkzeug, wenn Sie Komposition oder Kompatibilitätsfaltung brauchen; diese Seite richtet sich an Personen, die gezielt die kanonische Unicode-NFD-Zerlegung und eine deterministische normalisierte Zeichenkette für Tests und Pipelines benötigen.

Diakritika-bewusste Suchschlüssel

Zerlegen Sie Produkttitel und Nutzeranfragen nach NFD und entfernen Sie danach kombinierende Marken, um akzentinsensitive Such- und Autocomplete-Indizes aufzubauen.

Normalisierung von Benutzernamen und Labels

Normalisieren Sie Kontonamen und Labels vor Allow-List- oder Eindeutigkeitsprüfungen, damit präkomponierte und zerlegte Formen nicht auseinanderlaufen.

Was ist Unicode NFD?

NFD ist die Normalization Form D aus dem Unicode Standard Annex 15. Sie wendet kanonische Zerlegung an, sodass präkomponierte Zeichen zu Basiszeichen plus kombinierenden Marken werden, ohne sie zu NFC zu rekomponieren.

Worin unterscheidet sich NFD von NFC oder NFKD?

NFC zerlegt und rekomponiert danach zu präkomponierten Formen, wo möglich. NFKD und NFKC wenden zusätzlich Kompatibilitäts-Mappings an (Ligaturen, Fullwidth-Formen). Dieses Werkzeug wendet nur die kanonische NFD-Zerlegung an.

Was passiert, wenn text fehlt oder ungültig ist?

Fehlender text, Nicht-String-Objekte, nicht-endliche Zahlen und zu große Eingabe werden abgelehnt. Validierungsfehler werden nicht berechnet.

Wird Hangul zerlegt?

Ja. Präkomponierte Hangul-Silben werden unter NFD algorithmisch in Jamo zerlegt, sodass kurzer koreanischer Text in der Codepunkt-Länge wachsen kann und dennoch derselbe Text bleibt.

Wie wird die NFD-Normalisierung abgerechnet?

Die kanonische Zerlegung im Browser nutzen Sie ohne Gebühr auf Ihrem Gerät.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/enc/unicode-nfd

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/enc/unicode-nfd \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"café"}'
{
  "text": "café"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.unicode_nfd",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Ungültige oder fehlende Eingabe scheitert sofort mit invalid_input, damit fehlerhafte Payloads keine stillschweigend falsche Zeichenkette erzeugen.

So rufen Sie die API auf und lesen die Antwort

Leere Zeichenketten sind gültig und liefern ein leeres NFD-Ergebnis mit changed false. Ein klassisches café-Beispiel wächst von vier Skalaren auf fünf und meldet changed true mit einer kombinierenden Marke. Reines ASCII wie Hello bleibt mit changed false identisch. Fehlgeschlagene Validierung verbraucht kein vorausbezahltes Guthaben. Senden Sie ein JSON-Objekt mit einem Pflicht-Stringfeld namens text. Die Aliase input, value, data, s, str und string werden akzeptiert, wenn text fehlt, damit Ad-hoc-Clients weiterhin funktionieren. Endliche Zahlen und Booleans werden in ihre Stringform umgewandelt; Objekte, Arrays, null-text, NaN und Infinity werden mit invalid_input und einer klaren englischen Meldung abgelehnt. Zeichenketten länger als das dokumentierte Maximum von fünfundsechzigtausendfünfhundertsechsunddreißig UTF-16-Codeeinheiten werden abgelehnt, damit eine einzelne Anfrage keinen Worker monopolisiert. Bei Erfolg spiegelt die Antwort den ursprünglichen text, setzt result auf die NFD-normalisierte Zeichenkette, form auf die Konstante NFD, changed darauf, ob result von text unter gewöhnlicher JavaScript-String-Ungleichheit abweicht, length_in und length_out auf Unicode-Skalarzählungen vor und nach der Normalisierung, code_units_in und code_units_out auf die UTF-16-Längen, combining_marks auf eine Zählung gängiger kombinierender Marken-Codepunkte im Ergebnis und standard auf ein kurzes UAX-#15-Label. Der Preis erfolgreicher API-Aufrufe ist die veröffentlichte Basis von $0.002 pro Element mit Einheit item.

Wo NFD in der realen Ingenieursarbeit vorkommt

Weil diese Fähigkeit eine reine Parse-Engine ist, beträgt der API-Preis die veröffentlichte Basis von $0.002 pro erfolgreichem Element, und fehlgeschlagene Validierung wird nicht berechnet.

Stabile Golden-Tests über Plattformen

Erzwingen Sie Fixture-Zeichenketten in NFD, damit Gleichheitsasserts bestehen, egal ob Quelldaten präkomponiert oder bereits zerlegt ankamen.

Vollständige KIT-Dokumentation lesen →