Unicode-NFKD-Normalisierer
Aus file ① café wird file 1 café mit abgetrenntem Akzent: Ligaturen öffnen sich zu einzelnen Buchstaben, eingekreiste Ziffern werden zu normalen Zahlen und Akzentbuchstaben zerfallen in Grundzeichen und Akzent, ohne spätere Zusammensetzung. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- file ① café
- Ergebnis
- file 1 café
- Form
- NFKD
- Eingabelänge
- 10
- Ergebnislänge
- 12
Unicode-Text kodiert dieselben abstrakten Zeichen oft in mehreren Formen: eine Ligatur, ein vorkomponierter Buchstabe mit Akzent, eine eingekreiste Ziffer oder eine Basis plus kombinierende Marken. Suchmaschinen, Datenbanken und Sicherheitsfilter brauchen eine stabile Form, damit file und file übereinstimmen, café und café nach Zerlegung gleich verglichen werden und ① keine Ziffer verbirgt. Die Unicode-Normalisierungsform KD (NFKD) wendet die Kompatibilitätszerlegung an: Sie expandiert Ligaturen, entfernt rein präsentationsbezogene Unterschiede und trennt kombinierende Sequenzen ohne Rekomposition. Diese Fähigkeit akzeptiert beliebige Zeichenketten, führt den Standard-NFKD-Algorithmus aus und liefert das normalisierte Ergebnis mit Längen- und Codepunkt-Statistiken sowie einem Booleschen Wert, der angibt, ob sich etwas geändert hat.
Was NFKD leistet und wie es sich von NFC, NFD und NFKC unterscheidet
Die Unicode-Normalisierungsform KD, definiert im Unicode Standard Annex fünfzehn, ist die Kompatibilitätszerlegung. Im Gegensatz zu NFD, das nur kanonische Zerlegungen anwendet, etwa das Aufteilen eines vorkomponierten é in e plus kombinierenden Akut, wendet NFKD auch Kompatibilitätszuordnungen an, die Formatierungs- und Präsentationsunterschiede entfernen, die für viele Abgleichaufgaben nicht semantisch wesentlich sind. Ligaturen wie das einzelne Zeichen fi werden zu den Buchstaben f und i; die Doppel-f-Ligatur ff wird zu f f; die Dreifachligatur ffi zu f f i.
Eingekreiste Zahlen, Vollbreite-Ziffern, Hochstellungen und ähnliche Kompatibilitätszeichen expandieren zu ihren einfachen Entsprechungen. Kanonische kombinierende Sequenzen erscheinen weiterhin in zerlegter Reihenfolge, sodass café zu cafe gefolgt von einem kombinierenden Akut auf dem e werden kann. NFKD rekomponiert absichtlich nicht: dieser Schritt gehört zu NFKC.
Wählen Sie NFKD, wenn Sie maximale Entfaltung für Indexierung, unscharfen Vergleich oder das Entfernen von Präsentationsformen vor weiterer Verarbeitung wünschen. Wählen Sie NFC, wenn Sie eine kompakte komponierte Form für Speicherung und Anzeige bevorzugen. Dieser Endpunkt liefert stets form NFKD, damit Clients den Algorithmus nicht erraten müssen.
Die Implementierung nutzt die eingebaute String-normalize-Methode der Hostsprache, die UAX fünfzehn folgt und auf modernen JavaScript-Engines vollständig deterministisch ist.
Wo Unicode-NFKD-Normalisierung in der Praxis vorkommt
Such- und Katalogsysteme normalisieren Produkttitel und sichtbare Labels, damit ligaturreiche Typografie aus Designwerkzeugen keine doppelten Schlüssel erzeugt: final und final fallen nach NFKD zusammen. Lokalisierungsingenieure vergleichen Benutzerzeichenketten nach Kompatibilitätszerlegung, wenn sie verwechselbare Homoglyphen jagen oder prüfen, ob eine Anzeigeform nur Präsentationszucker über einfachen Buchstaben ist. Sicherheits- und Identitätspipelines wenden oft NFKD oder NFKC vor Hash oder Gleichheit an, damit alternative Unicode-Schreibweisen desselben abstrakten Namens Allow-Listen nicht umgehen.
Schrift- und Glyphen-Workflows dokumentieren, welche Kompatibilitätszeichen eine Familie noch als Einzelglyphe liefert, und brauchen einen deterministischen Expansionsschritt für Regressionsfixtures. Programmierkurse lehren Kodierung, indem sie zeigen, dass ein sichtbares Zeichen nach Zerlegung mehreren Skalaren entsprechen kann; eine eigene NFKD-Landing bedient diese Suchintention besser als eine Vergrabung unter Base64 oder Codepunkt-Konvertern. Support-Desks fügen seltsame Symbole aus Tickets ein und brauchen eine autoritative entfaltete Form für die Reproduktion in der Entwicklung.
Wenn Sie U-plus-Codepunktlisten, HTML-Entitäten oder UTF-8-Mojibake-Reparatur brauchen, behandeln Sie das als getrennte Suchintentionen und Landings und überladen Sie diese Unicode-NFKD-Normalisierer-Seite nicht.
Anwendungsfälle
Schlüsselfaltung für Suche und Katalog
Normalisieren Sie Produkttitel und Labels mit NFKD, damit Ligaturen und eingekreiste Ziffern keine doppelten Indexschlüssel neben den Klartext-Äquivalenten erzeugen.
Identitäts- und Sicherheitsvergleich
Zerlegen Sie Benutzernamen und Token kompatibilitätsbasiert vor Gleichheit oder Hash, damit Präsentationsvarianten Filter nicht umgehen, die ASCII-freundliche Formen erwarten.
Häufige Fragen
Was ist Unicode NFKD?
NFKD ist die Normalisierungsform KD aus Unicode Standard Annex #15: vollständige Kompatibilitätszerlegung. Sie entfaltet Ligaturen und Kompatibilitätszeichen und trennt kombinierende Marken, ohne sie zu rekomponieren.
Worin unterscheidet sich NFKD von NFKC?
Beide wenden Kompatibilitätszerlegung an. NFKC rekomponiert danach wo möglich zu zusammengesetzten Zeichen. Dieses Werkzeug liefert nur NFKD (zerlegte Form, keine Rekomposition).
Wird aus file file?
Ja. Die fi-Ligatur U+FB01 ist ein Kompatibilitätszeichen; NFKD mappt sie auf f + i, sodass file zu file mit changed true normalisiert wird.
Was geschieht bei ungültiger Eingabe?
Fehlendes text, Nicht-String-Objekte, nicht endliche Zahlen und zu lange Zeichenketten werden mit klarer Meldung abgelehnt. Validierungsfehler werden nicht berechnet.
Warum ist das Ergebnis länger als der Ausgangstext?
Weil jede Ligatur zu mehreren Buchstaben und jeder Akzent zu einem eigenen Zeichen wird. Im Beispiel file ① café werden aus 10 Codepunkten 12, obwohl der Text auf dem Bildschirm fast gleich aussieht.
Verwandte Tools
Für Entwickler — API-Zugang
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.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/enc/unicode-nfkd \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"file ① café"}'const res = await fetch("https://api.kit.forhosting.com/enc/unicode-nfkd", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "file ① café"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/unicode-nfkd",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "file ① café"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/unicode-nfkd", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"file ① café"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"file ① café"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/unicode-nfkd", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "file ① café"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.unicode_nfkd",
"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.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Ungültige oder fehlende Eingabe scheitert mit invalid_input, damit fehlerhafte Nutzlasten keinen Text erfinden. Das kostenlose Browser-Werkzeug und die kostenpflichtige API teilen dasselbe reine Modul, sodass Demos, Lokalisierungspipelines und Produktions-Webhooks stets übereinstimmen.
Eingabevertrag, Antwortfelder und Fehlerverhalten
Leere Zeichenketten sind gültig und liefern ein leeres NFKD-Ergebnis mit changed false. Fehlendes text scheitert sofort ohne Abrechnung. Nutzen Sie das kostenlose Browserformular zur schnellen Prüfung eingefügter Labels und Produktnamen und denselben Vertrag aus Skripten für Massfixtures oder CI-Assertions. Senden Sie ein JSON-Objekt mit einem erforderlichen Zeichenkettenfeld namens text. Die Aliase input, value, s und data werden akzeptiert, wenn text fehlt, analog zu verwandten Kodierungswerkzeugen. Zahlen und Boolesche Werte werden in ihre Dezimalform bzw. true oder false umgewandelt; Objekte, Arrays, null, NaN und Infinity werden mit invalid_input unter Nennung des Problems abgelehnt. Zeichenketten mit mehr als fünfundsechzigtausendfünfhundertsechsunddreißig UTF-16-Codeeinheiten scheitern, damit unkontrollierte Einfügungen den Worker nicht erschöpfen. Bei Erfolg spiegelt der Körper den Original-text, liefert result als NFKD-normalisierte Zeichenkette, setzt form auf die Konstante NFKD, setzt changed auf true, wenn result von text abweicht, meldet input_length und result_length als UTF-16-Einheitenanzahlen, meldet input_code_points und result_code_points als Unicode-Skalaranzahlen, damit Emoji und Non-BMP-Zeichen nicht falsch gezählt werden, und enthält eine kurze Standardbezeichnung mit Verweis auf UAX fünfzehn. Beispiel: das Ligaturwort file wird zu file mit changed true und größerem result_length, weil eine Einheit zu vier wurde. Der Preis erfolgreicher API-Aufrufe ist die veröffentlichte Basis von $0.002 pro Element; Validierungsfehler werden nicht berechnet.
Wo Unicode-NFKD-Normalisierung in der Praxis vorkommt
Da 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.
Integrationsbeispiele
Lokalisierungs- und Lehrfixtures
Erzeugen Sie stabile zerlegte Zeichenketten für Golden-Tests, Glyph-Abdeckung und Unterrichtsdemos der Kompatibilitätszuordnungen aus UAX #15.
Technische Fragen
Was kostet der Unicode-NFKD-Normalisierer?
Das Browser-Werkzeug ist gratis auf Ihrem Gerät. API-Aufrufe nutzen das im Voraus bezahlte KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingaben werden nicht abgerechnet.