Unicode-Escape-Konverter
Aus Hi wird \u0048\u0069, ein é wird zu \u00e9 und das Emoji U+1F600 zum Paar \ud83d\ude00. Beim Dekodieren werden solche Folgen wieder lesbarer Text, und kaputte Escapes werden abgelehnt statt erraten. 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
- Hi
- Berechnungsmodus
- Encode
- Ergebnis
- \u0048\u0069
- Länge
- 12
- Codeeinheiten
- 2
- Anzahl der Escapes
- 2
Ein einfacher Buchstabe wird zu \u0041, ein akzentuiertes Zeichen zu \u00e9, und Zeichen außerhalb der Basic Multilingual Plane — Emoji, historische Schriften und viele moderne Symbole — erscheinen als hohes und niedriges Surrogatpaar, etwa \ud83d\ude00. Solche Sequenzen von Hand einzufügen ist langsam und fehleranfällig; das Dekodieren eines abgeschnittenen oder nicht hexadezimalen Escapes kann stillschweigend das falsche Zeichen erzeugen, wenn ein Werkzeug zu nachsichtig ist. Diese Fähigkeit kodiert Klartext in zusammenhängende \uXXXX-Sequenzen und dekodiert escapelastige Strings zurück in lesbare Zeichen mit voller Surrogatpaar-Erkennung.
Wofür ein \uXXXX-Escape eigentlich steht
Das klassische Escape besteht aus einem Backslash, dem Buchstaben u und genau vier Hexziffern. JavaScript, Java und viele Datendateien schreiben damit jedes Zeichen mit einfachen Tastaturzeichen. Jedes Escape steht für eine UTF-16-Einheit, nicht für ein ganzes Zeichen. Ein großes H ist daher schlicht \u0048, während Zeichen oberhalb von U+FFFF, etwa Emoji und seltene historische Schriften, zwei Escapes brauchen: eine hohe Hälfte aus dem Bereich D800 bis DBFF und eine niedrige aus DC00 bis DFFF. Der lachende Smiley U+1F600 wird so zu \ud83d\ude00.
Typische Einsätze und abgefangene Fehler
Gebraucht wird das, wenn ein Text im Quellcode, in einer Ressourcendatei oder in einem Protokoll \u-Folgen statt Buchstaben zeigt. Es eignet sich auch als Lektion zu UTF-16: Ein Emoji wird zu zwei Einheiten, und das Paar ergibt beim Dekodieren wieder ein Zeichen. Das Dekodieren ist bewusst streng. Ein abgeschnittenes Ende wie \u12, ein Inhalt ohne Hexziffern wie \uGGGG und unbekannte Backslash-Folgen werden abgelehnt statt erraten, denn ein nachsichtiges Werkzeug erfindet sonst still ein falsches Zeichen. Ein gültiges Paar aus hoher und niedriger Hälfte wird wieder zu einem einzigen Zeichen zusammengesetzt.
Wie \uXXXX-Escapes UTF-16-Codeeinheiten abbilden
Werte von U+0000 bis U+FFFF (mit Ausnahme ungepaarter Surrogat-Grenzfälle, die Sie weiterhin als Einheiten ausgeben können) werden zu einem einzelnen Escape, etwa \u0048 für großes H oder \u00e9 für e-akut. Skalare von U+10000 bis U+10FFFF werden als Surrogatpaar kodiert: zuerst ein hohes Surrogat im Bereich U+D800–U+DBFF, dann ein niedriges Surrogat in U+DC00–U+DFFF. Das lächelnde Gesicht U+1F600 wird daher zu \ud83d\ude00, nicht zu einem sechsstelligen Escape.
Unvollständige Enden wie \u12, nicht hexadezimale Rümpfe wie \uGGGG und unbekannte Backslash-Escapes werden abgelehnt statt geraten. Gültige Hoch-plus-Tief-Paare werden über fromCodePoint zu einem Skalar rekombiniert, sodass der Roundtrip Emoji und Text der Zusatzebene erhält.
Anwendungsfälle
UTF-16 und Surrogatpaare lehren
Zeigen Sie Studierenden, dass ein Emoji zu zwei \uXXXX-Einheiten wird, und dekodieren Sie das Paar zurück, damit Länge und Codepunkt greifbar bleiben.
Häufige Fragen
Welches Escape-Format nutzt dieses Werkzeug?
Nicht-BMP-Zeichen werden als hohes und niedriges Surrogatpaar kodiert (zum Beispiel \ud83d\ude00).
Kann man in beide Richtungen konvertieren?
Ja. Setzen Sie mode auf encode (Standard), um Klartext in zusammenhängende \uXXXX-Sequenzen zu wandeln, oder mode auf decode, um Escapes — einschließlich Surrogatpaare — zurück in Zeichen zu expandieren.
Was passiert bei einem fehlgeformten Escape?
Abgeschnittene Formen wie \u12, nicht hexadezimale Rümpfe und unbekannte Backslash-Escapes werden mit einer Meldung abgelehnt, die auf das Problem zeigt. Validierungsfehler werden nicht berechnet.
Werden Emoji und andere Nicht-BMP-Zeichen unterstützt?
Ja. Encode gibt ein Surrogatpaar aus zwei \uXXXX-Einheiten aus; decode rekombiniert ein gültiges Hoch+Tief-Paar zu einem Skalar, sodass der Roundtrip das ursprüngliche Emoji erhält.
Akzeptiert das Dekodieren auch ein großes \U?
Ja. Beim Dekodieren gilt sowohl \u als auch \U, jeweils gefolgt von genau vier Hexziffern. Beim Kodieren schreibt das Werkzeug dagegen immer ein kleines u und die Hexziffern in Kleinbuchstaben.
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-escape \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi café"}'const res = await fetch("https://api.kit.forhosting.com/enc/unicode-escape", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi café"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/unicode-escape",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi café"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/unicode-escape", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi café"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi café"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/unicode-escape", 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": "Hi café"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.unicode_escape",
"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
Entwickler, die JSON-Payloads, Java-Ressourcenbündel oder JavaScript-Stringliterale debuggen, begegnen ständig der Backslash-u-Form: vier hexadezimale Ziffern nach \u, die eine UTF-16-Codeeinheit darstellen. Das kostenlose Browser-Werkzeug und die kostenpflichtige API teilen einen deterministischen Kern, sodass Unterrichtsdemos, CI-Prüfungen und Live-Webhooks stets dieselbe Abbildung zum veröffentlichten Preis von $0.002 pro erfolgreichem Element liefern.
Wie \uXXXX-Escapes UTF-16-Codeeinheiten abbilden
Java, JavaScript und die JSON-Stringgrammatik beschreiben Unicode-Text mit demselben klassischen Escape: einem Backslash, dem Buchstaben u und genau vier hexadezimalen Ziffern. Diese Form benennt für sich allein keinen vollständigen Unicode-Skalar, wenn das Zeichen über U+FFFF liegt; stattdessen benennt sie eine UTF-16-Codeeinheit. Dieses Design entspricht dem, was Sie in JSON.stringify-Ausgaben, vielen Java-Properties-Dateien und älterem JavaScript vor dem Codepunkt-Escape \u{…} sehen. Diese Fähigkeit durchläuft die Eingabe beim Kodieren codepunktbewusst, gibt für jede Einheit Kleinbuchstaben-Hex mit vier Ziffern aus und sucht beim Dekodieren nach \u oder \U gefolgt von vier Hex-Ziffern.
Was Sie senden und was Sie zurückerhalten
Senden Sie ein Pflicht-Stringfeld namens text und ein optionales mode-Feld mit encode oder decode. Fehlt mode, ist encode der Standard, sodass eine einzelne Nutzlast weiterhin nützlich arbeitet. Encode wandelt jedes Zeichen in zusammenhängende \uXXXX-Einheiten um: Hi wird zu \u0048\u0069, und ein String aus ASCII, café und einem Emoji erzeugt ein längeres, aber vollständig escapetes Ergebnis. Decode kehrt den Vorgang um: Es ersetzt jedes wohlgeformte \uXXXX durch die passende Codeeinheit, rekombiniert Surrogatpaare zu einem Zeichen, wenn beide Hälften vorhanden sind, und behält literale Zeichen, die nie escapet wurden, sodass gemischte Einfügungen funktionieren. Beim Decode werden gängige JSON-Begleiter wie \n, \t, \r, \\ und \" akzeptiert, damit ein aus einem Stringliteral kopiertes Fragment nicht am ersten Newline-Escape scheitert. Erfolgsantworten spiegeln mode und den ursprünglichen text wider, liefern result als primären Ausgabestring und enthalten length, code_units (verarbeitete UTF-16-Einheiten), escape_count (wie viele \uXXXX-Formen erzeugt oder verbraucht wurden), ein Formatlabel \uXXXX und eine kurze Standardnotiz zu Java, JavaScript und JSON. Fehlender text, nicht unterstützte mode-Werte, Strings über dem dokumentierten Maximum, abgeschnittenes Hex nach \u, nicht hexadezimale Ziffern in einem Escape und unbekannte Backslash-Sequenzen scheitern mit invalid_input und einer englischen Meldung, die Index oder Feld nennt. Validierungsfehler verbrauchen kein Prepaid-Guthaben. Der Preis erfolgreicher API-Aufrufe ist die veröffentlichte Basis von $0.002 pro Element.
Wo Unicode-Escape-Umwandlung in der Praxis vorkommt
Mobile und Desktop-Clients, die mit Java-Backends sprechen, protokollieren manchmal Properties-ähnliche Bündel voller \u-Sequenzen für jedes akzentuierte Label; Support-Teams fügen diese Zeilen auf einer dedizierten Converter-Landing ein, statt IDE-Einstellungen zu durchsuchen. Programmierkurse lehren, dass die Länge eines JavaScript-Strings UTF-16-Einheiten zählt, nicht wahrgenommene Zeichen, und ein Live-Encoder, der zwei Escapes für ein Emoji zeigt, macht diese Lektion greifbar. Wenn Sie U-plus-Skalarlisten ohne Backslashes, rohe UTF-16-Hex-Dumps, Prozentkodierung für URLs oder benannte HTML-Entitäten brauchen, behandeln Sie diese als getrennte Suchintentionen und Landings, statt diese Unicode-Escape-Sequenz-Seite zu überladen — jene Werkzeuge beantworten andere Anfragen, auch wenn der zugrunde liegende Code kurz ist. API- und Webhook-Autoren erhalten oft JSON, in dem nicht-ASCII-Produktnamen oder nutzergenerierte Bildunterschriften vollständig escapet erscheinen; das Dekodieren in lesbaren Text beschleunigt das Triage, ohne eine volle Anwendungsruntime zu starten. Weil diese Fähigkeit eine reine Parse-Engine ist, bleibt der API-Preis bei der veröffentlichten Basis von $0.002 pro erfolgreichem Element und fehlgeschlagene Validierung wird nicht berechnet.
Integrationsbeispiele
Escapete JSON- und Java-Logs dekodieren
Fügen Sie eine Logzeile voller \u00e9 und Surrogatpaare ein, dekodieren Sie sie in lesbaren Text und kodieren Sie ein korrigiertes Fixture für das nächste Deployment neu.
CI-Golden-Strings für Serialisierer bauen
Kodieren Sie Produktnamen und Emoji-Bildunterschriften in stabile \uXXXX-Formen, die JSON- und Java-String-Dumps nach Bibliotheks-Upgrades treffen müssen.
Technische Fragen
Was kostet es?
Das Browser-Werkzeug ist kostenlos und läuft lokal. API-Anfragen nutzen vorab bezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Element; ungültige Eingaben werden nicht berechnet.