Diakritische Unicode-Zeichen aus Text entfernen
Dieses Werkzeug entfernt kombinierende diakritische Zeichen aus Unicode-Text, nachdem es eine kanonische Zerlegung durchgeführt hat.
Im Browser ausführen – kostenlos
Akzentbuchstaben wie é, ñ und ü werden zu ihren Grundformen, während Satzzeichen, Abstände, Symbole, Groß- und Kleinschreibung sowie unabhängige Schriftsysteme erhalten bleiben. Das Ergebnis eignet sich für Suchindizes, Kennungen, Dateinamen und URL-Slugs, die eine akzentunabhängige Darstellung benötigen, ohne eine umfassende Transliteration oder sprachspezifische Rechtschreibregeln anzuwenden. Die Verarbeitung ist deterministisch, bleibt auf die jeweilige Anfrage beschränkt und liefert einen einfachen Textwert, den Sie kopieren oder direkt an einen weiteren Normalisierungsschritt übergeben können.
Was die Umwandlung bewirkt
Unicode kann viele Akzentbuchstaben auf mehr als eine Weise darstellen. Ein Zeichen wie é kann als einzelner vorkomponierter Codepunkt oder als Grundbuchstabe e mit einem nachfolgenden kombinierenden Akut gespeichert sein. Durch einen rein visuellen Vergleich lässt sich die vorhandene Darstellung nicht erkennen. Diese Fähigkeit führt zuerst die kanonische Unicode-Zerlegung aus, die üblicherweise NFD heißt. Zeichen mit kanonischer Zerlegung werden dadurch als Grundzeichen mit nachfolgenden Markierungen ausgedrückt. Anschließend entfernt die Funktion Zeichen aus sämtlichen Unicode-Markierungskategorien. So werden beispielsweise café, piñata und Ångström zu cafe, pinata und Angstrom. Der Text wird nicht kleingeschrieben, Leerraum wird nicht zusammengefasst, Satzzeichen werden nicht entfernt und Symbole nicht ersetzt. Auch eine vollständige ASCII-Transliteration wird nicht zugesichert: Buchstaben ohne kanonische Zerlegung, etwa ł, bleiben unverändert. Dieser enge Umfang ist beabsichtigt. Sie erhalten damit einen berechenbaren Normalisierungsbaustein, den Sie mit getrennten Regeln für Kleinschreibung, Satzzeichen oder Slug-Formate kombinieren können, ohne dass eine einzelne Operation verborgene Änderungen ausführt.
Stabile Suchschlüssel und Slugs erstellen
Eine akzentunabhängige Suche funktioniert häufig am besten, wenn der ursprüngliche Wert und ein normalisierter Schlüssel getrennt gespeichert werden. Bewahren Sie die Originalschreibweise für die Anzeige auf und lassen Sie daraus mit dieser Fähigkeit ein Vergleichsfeld erzeugen. Eine Suchanfrage kann vor dem Abgleich genauso behandelt werden. Wer cafe eingibt, findet dadurch café, während in den Ergebnissen weiterhin die korrekt akzentuierte Bezeichnung erscheint. In einer Slug-Verarbeitungskette kann die Ausgabe früh verwendet werden: Entfernen Sie zuerst die Markierungen, wandeln Sie danach in Kleinbuchstaben um, ersetzen Sie Leerzeichen und wenden Sie die Satzzeichenregeln Ihres Projekts an. Die Reihenfolge ist wichtig, weil die Zerlegung Markierungen freilegt, die sonst mit vorkomponierten Buchstaben verbunden blieben. Der Vorgang ist deterministisch; identische Unicode-Eingaben ergeben immer identische Ausgaben und eignen sich daher für Cache-Schlüssel oder wiederholbare Datenaufbereitung. Die Normalisierung ersetzt jedoch keine sprachabhängige Sortierung. Sprachen behandeln Akzentbuchstaben unterschiedlich als Varianten oder eigenständige Buchstaben. Behalten Sie deshalb den Originaltext und verwenden Sie den akzentunabhängigen Abgleich nur, wenn er zu Ihrem Produkt und dessen Nutzern passt.
Grenzen, Schriftsysteme und Prüfung
Die Entfernungsregel erfasst kombinierende Markierungen im gesamten Unicode-Standard und nicht nur den vertrauten Akzentbereich westeuropäischer Sprachen. Das ist technisch einheitlich, kann sich aber in Schriftsystemen stark auswirken, in denen Markierungen wesentliche Informationen tragen. Prüfen Sie repräsentative Inhalte aus jeder Sprache, die Ihre Anwendung akzeptiert, bevor Sie die Ausgabe für Suche, Routing oder Identitätsfelder verwenden. Auch Emoji-Variationsselektoren und andere als Markierungen klassifizierte Zeichen können entfernt werden. Behandeln Sie die Ausgabe daher als normalisierten Schlüssel und nicht als anzeigetreue Kopie. Die kanonische Zerlegung unterscheidet sich bewusst von der Kompatibilitätszerlegung: Schmuck- und Kompatibilitätsformen werden nicht allgemein vereinfacht, und das Werkzeug versteht sich nicht als universeller Transliterator. Vergleichen Sie zur Prüfung eine vorkomponierte und eine zerlegte Schreibweise desselben Beispiels und bestätigen Sie gleiche Ergebnisse. Nehmen Sie außerdem Satzzeichen, nichtlateinischen Text, Emojis und Buchstaben ohne Zerlegung in Ihre Tests auf. Diese Fälle zeigen, ob der gezielte Vorgang ausreicht oder Ihre Verarbeitungskette weitere ausdrücklich gewählte Normalisierungsschritte benötigt.
Anwendungsfälle
Akzentunabhängige Suchschlüssel erstellen
Speichern Sie einen zusätzlichen normalisierten Wert, damit Anfragen ohne Akzente korrekt geschriebene Namen und Begriffe finden.
Text für URL-Slugs vorbereiten
Führen Sie zerlegbare Akzentbuchstaben auf ihre Grundform zurück, bevor Regeln für Kleinschreibung, Trennzeichen und Satzzeichen folgen.
Alternative Unicode-Darstellungen vergleichen
Normalisieren Sie vorkomponierte und kombinierte Schreibweisen auf dieselbe Grundbuchstabendarstellung, um sie deterministisch zu vergleichen.
Häufige Fragen
Was entfernt diese Fähigkeit?
Sie führt die kanonische Unicode-Zerlegung aus und entfernt Zeichen aus den Unicode-Markierungskategorien, einschließlich kombinierender diakritischer Zeichen.
Wird der gesamte Text in ASCII umgewandelt?
Nein. Zeichen ohne kanonische Zerlegung in Grundbuchstaben bleiben ebenso erhalten wie Satzzeichen, Symbole und Buchstaben anderer Schriftsysteme.
Schreibt die Funktion klein oder erstellt sie einen vollständigen Slug?
Nein. Kleinschreibung, Ersetzen von Leerraum, Filtern von Satzzeichen und Trennzeichenregeln müssen als ausdrückliche Folgeschritte angewendet werden.
Erzeugen vorkomponierte und zerlegte Akzente dasselbe Ergebnis?
Ja. Die kanonische Zerlegung erfolgt vor dem Entfernen, sodass ein vorkomponiertes é und ein e mit nachfolgendem Akut einheitlich vereinfacht werden.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Die Umwandlung eignet sich auch für den erzeugten Browser-Executor, da sie weder Netzwerk noch Serverzustand benötigt.
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/str/remove-diacritic-marks \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Crème brûlée — déjà vu in São Paulo"}'const res = await fetch("https://api.kit.forhosting.com/str/remove-diacritic-marks", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Crème brûlée — déjà vu in São Paulo"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/remove-diacritic-marks",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Crème brûlée — déjà vu in São Paulo"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/remove-diacritic-marks", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Crème brûlée — déjà vu in São Paulo"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Crème brûlée — déjà vu in São Paulo"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/remove-diacritic-marks", 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": "Crème brûlée — déjà vu in São Paulo"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.remove_diacritic_marks",
"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. |