Unicode-Konverter
Beliebige Unicode-Schreibweise einfügen, Klartext zurücklesen. \uXXXX-Escapes, ES6-Klammern, U+ Codepunkte und Bytefolgen erkennt der Konverter selbst und listet alle übrigen Schreibweisen auf einmal. Läuft lokal im Browser.
Alles läuft in Ihrem Browser — Ihre Eingabe wird nie hochgeladen, protokolliert oder gespeichert.
Das Ergebnis erscheint hier Alle Schreibweisen auf einmal
| JavaScript / Java / JSON uXXXX | — | |
|---|---|---|
| ES6 u{XXXXX} | — | |
| Python uXXXX / UXXXXXXXX | — | |
| Go uXXXX / UXXXXXXXX | — | |
| Rust u{XXXXX} | — | |
| Codepunkt U+XXXX | — | |
| HTML dezimal &#NNNNN; | — | |
| HTML hexadezimal &#xXXXX; | — | |
| URL-kodiert %XX | — | |
| CSS XXXXXX | — | |
| UTF-8-Bytes hex | — | |
| UTF-16-Code-Units hex | — | |
| UTF-32 hex | — | |
| Oktale Bytes NNN | — | |
| Dezimale Codepunkte NNNNN | — |
Zeichen für Zeichen
| Zeichen | Codepunkt | UTF-8 | UTF-16 | Schrift | Kategorie | Name |
|---|---|---|---|---|---|---|
| Das Ergebnis erscheint hier | ||||||
Kurzreferenz
| Zeichen | Codepunkt | JavaScript / Java / JSON | UTF-8-Bytes | URL-kodiert | HTML dezimal |
|---|---|---|---|---|---|
| 中文 | U+4E2D U+6587 | \u4E2D\u6587 | E4 B8 AD E6 96 87 | %E4%B8%AD%E6%96%87 | 中文 |
| 😀 | U+1F600 | \uD83D\uDE00 | F0 9F 98 80 | %F0%9F%98%80 | 😀 |
| A | U+0041 | A | 41 | A | A |
| ␣ U+3000 | U+3000 | \u3000 | E3 80 80 | %E3%80%80 |   |
Das Verhalten wurde gegen Node, Python, Java, Go und eine echte Browser-Engine geprüft, nicht aus der Dokumentation abgeleitet.
Was ist ein Unicode-Escape?
Ein Unicode-Escape schreibt ein Zeichen ausschließlich mit ASCII, damit es Systeme übersteht, die das Zeichen selbst nicht transportieren können. Dasselbe Zeichen hat in fast jeder Sprache ein anderes Escape: JavaScript und JSON nehmen vier Hex-Ziffern pro UTF-16-Code-Unit, ES6 und Rust setzen einen vollständigen Codepunkt in geschweifte Klammern, Python und Go kennen zusätzlich eine breite Form mit acht Ziffern, CSS kommt mit einem nackten Backslash aus, und HTML hat eigene numerische und benannte Referenzen. Alle beschreiben denselben Codepunkt. Genau deshalb erreicht Sie ein und dieselbe Zeichenkette in einem halben Dutzend Gestalten.
中文
U+4E2D U+6587 code point
\u4E2D\u6587 JavaScript / Java / JSON
\u{4E2D}\u{6587} ES6 / Rust
E4 B8 AD E6 96 87 UTF-8
%E4%B8%AD%E6%96%87 URL
中文 HTML Was dieser Konverter kann
Erkennt die Schreibweise für Sie
Escapes, geschweifte Klammern, breite Escapes, Codepunkte, Entitäten, Prozentkodierung und Bytefolgen werden ohne Moduswechsel erkannt.
Übersteht gemischte Eingaben
Nur die kodierten Teile ändern sich. JSON-Satzzeichen, Windows-Pfade und bereits maskierte Backslashes bleiben, wie sie sind.
Alle Schreibweisen auf einmal
Einmal einfügen, und die komplette Tabelle steht da. Sie wandeln nie zweimal um, nur um von einer Sprache in die andere zu kommen.
Pro Sprache korrekt
Zeichen außerhalb der BMP werden für Python und Go als breites Escape ausgegeben, wo ein Surrogatpaar scheitern würde.
Prüfung bis auf Zeichenebene
Codepunkt, UTF-8- und UTF-16-Bytes, Schrift und Kategorie für jedes einzelne Zeichen, dazu der Unicode-Name, sofern es einen gibt.
Macht unsichtbare Zeichen sichtbar
Byte Order Marks, Zero-Width-Joiner und geschützte Leerzeichen bekommen einen sichtbaren Platzhalter.
Beispiele
Eine Logzeile dekodieren, ohne den Rest anzufassen
{"msg":"\u4e2d\u6587 failed","code":500} {"msg":"中文 failed","code":500} Nur die Escape-Sequenzen ändern sich. Anführungszeichen, Schlüssel und Zahlen bleiben exakt so, wie sie waren. Sie können also eine ganze Logzeile einfügen, statt die Escapes von Hand herauszupicken.
Gemischte Schreibweisen in einem Durchgang
U+4E2D \u{1F600} 中 \ud83d\ude00 中 😀 中 😀
Ein Codepunkt, ein ES6-Escape in geschweiften Klammern, eine HTML-Entität und ein Surrogatpaar, alles in einem Durchgang dekodiert. Vorher musste nichts ausgewählt und nichts eingestellt werden.
Ein Zeichen, jede Schreibweise
中
\u4E2D JavaScript / Java / JSON
\u{4E2D} ES6 / Rust
U+4E2D code point
E4 B8 AD UTF-8
\344\270\255 octal Dasselbe Zeichen, geschrieben so, wie es jede Sprache erwartet. Beachten Sie, dass Python und Go für Zeichen außerhalb der BMP die breite Form brauchen: Ein Surrogatpaar lässt sich in Go nicht kompilieren und wirft in Python einen UnicodeEncodeError.
So verwenden Sie den Unicode-Konverter
- 1
Einfügen
Escapes, Codepunkte, Entitäten, kodierte Bytes oder einfachen Text hineinwerfen. Sie müssen nicht angeben, was davon es ist.
- 2
Ergebnis lesen
Der lesbare Text erscheint sofort, dazu ein Hinweis darauf, welche Darstellungen erkannt wurden.
- 3
Die passende Form kopieren
Unter dem Ergebnis steht jede Schreibweise, jede mit eigenem Kopieren-Button.
- 4
Nachsehen, wenn etwas nicht stimmt
Öffnen Sie die Zeichentabelle für Codepunkte, Bytes, Schrift und Namen, und schalten Sie „Unsichtbare Zeichen anzeigen“ ein, um versteckte Zeichen sichtbar zu machen.
Fehler, die man kennen sollte
Ein Surrogatpaar schreiben, wo die Sprache ein breites Escape will
Ein Paar, das in JSON funktioniert, wird in Python zu zwei kaputten Hälften und lässt sich in Go nicht kompilieren. Für Zeichen oberhalb von U+FFFF die breite Form nehmen.
\ud83d\ude00
\U0001F600
Numerische HTML-Referenzen als reine Codepunkte dekodieren
Referenzen zwischen 128 und 159 müssen über windows-1252 gelesen werden. Eine naive Implementierung macht aus einem rechten einfachen Anführungszeichen ein unsichtbares Steuerzeichen. Genau deshalb steht in alten Exporten an diesen Stellen überhaupt nichts mehr.
’ -> U+0092
’ -> U+2019
Ein kurzes CSS-Escape vor einem Hex-Zeichen verwenden
Der Parser frisst weiter Hex-Ziffern, Escape und Folgezeichen verschmelzen zu einem einzigen falschen Codepunkt. Auf sechs Ziffern auffüllen.
\4E2Da
\004E2Da
Wann Sie ihn brauchen
- Logs lesen
- In Serverlogs und API-Antworten steckt Nicht-ASCII häufig escapt. Zeile einfügen und lesen, ohne sie vorher zu bearbeiten.
- Zeichenketten zwischen Sprachen umziehen
- Kopieren Sie das Escape genau in der Form, die die Zielsprache akzeptiert, statt von Hand zwischen Surrogatpaaren und breiten Escapes umzurechnen.
- Einem Kodierungsfehler nachgehen
- Wenn ein Vergleich fehlschlägt oder die Datenbank einen Wert ablehnt, zeigt die Zeichentabelle genau, welche Codepunkte und Bytes im Spiel sind.
- Eingefügte Inhalte säubern
- Text aus einer Webseite oder einem Dokument schleppt oft unsichtbare Zeichen mit. Finden Sie sie, bevor sie in Produktion landen.
Technische Details
- Code-Units, nicht Zeichen
- JavaScript, Java und JSON maskieren UTF-16-Code-Units, ein Zeichen oberhalb von U+FFFF braucht also zwei Escapes. Python und Go bieten stattdessen eine Form mit acht Ziffern, die den Codepunkt direkt aufnimmt.
- Numerische HTML-Referenzen werden umgelegt
- Die HTML-Spezifikation verlangt, dass numerische Referenzen im Bereich 128 bis 159 über windows-1252 gelesen werden statt als Codepunkte. Eine Referenz wie 146 ist deshalb ein rechtes einfaches Anführungszeichen und kein unsichtbares Steuerzeichen.
- CSS-Escapes brauchen Auffüllung
- Ein CSS-Escape verschluckt bis zu sechs Hexadezimalziffern. Ein kurzes Escape, auf das ein Hex-Zeichen folgt, verschmilzt daher zu einem einzigen falschen Codepunkt. Auffüllen auf sechs Ziffern beseitigt die Mehrdeutigkeit, und ein nachfolgendes Leerzeichen wird als Abschluss geschluckt.
- Einzelne Surrogate verhalten sich überall anders
- Ein ungepaartes Surrogat bleibt bei der JSON-Serialisierung erhalten, wird von TextEncoder still ersetzt, von der Prozentkodierung abgelehnt, von Java als Fragezeichen geschrieben und von Python als Fehler geworfen.
Best Practices für Unicode
- Vor dem Vergleichen normalisieren
- Legen Sie beide Seiten auf dieselbe Normalisierungsform, bevor Sie vergleichen oder Duplikate entfernen. Bei Namen und Bezeichnern lohnt sich das besonders.
- Für Python und Go die breite Form nehmen
- Ein Surrogatpaar ist in JSON gültig, geht aber in beiden Sprachen kaputt. Nutzen Sie das Escape mit acht Ziffern, wenn das Ziel Python- oder Go-Quelltext ist.
- Früh auf unsichtbare Zeichen prüfen
- Prüfen Sie eingefügte Werte gleich an der Systemgrenze, statt später zu suchen, warum zwei scheinbar gleiche Zeichenketten nicht gleich sind.
- Das Original aufheben
- Sobald Ersetzungszeichen auftauchen, ist Dekodieren nicht mehr verlustfrei umkehrbar. Behalten Sie den Rohwert, bis Sie sicher sind.
Häufige Fragen zum Unicode-Konverter
Was bedeutet \u4e2d\u6587 und wie lese ich das?
Die Backslashes sind weg, übrig ist nur u4e2d. Lässt sich das noch dekodieren?
Warum steht ein Emoji als zwei \u-Escapes da?
Wie gehe ich den umgekehrten Weg und mache aus Text Escapes?
Zwei Zeichenketten sehen gleich aus, mein Code sagt aber, sie seien verschieden. Warum?
In meiner Zeichenkette steckt etwas Unsichtbares, das meinen Code kaputtmacht. Wie finde ich es?
Werden meine Daten irgendwohin hochgeladen?
Verwandte Werkzeuge
Alle Werkzeuge anzeigen →Base64-Dekodierer & -Kodierer
Kodierung & Formatierung
Base64 online kostenlos dekodieren und kodieren. Echtzeitkonvertierung mit voller UTF-8- und Emoji-Unterstützung. 100 % privat — läuft in Ihrem Browser. Keine Anmeldung nötig.
Base64-in-Bild-Konverter
Kodierung & Formatierung
Eine Base64-Zeichenkette oder einen Data-URI im Browser zurück in ein Bild dekodieren. Vorschau, Abmessungen & MIME ablesen, dann als PNG, JPG, GIF, SVG herunterladen. Kein Upload.
CSV-zu-JSON-Konverter
Kodierung & Formatierung
CSV im Browser nach JSON konvertieren. RFC 4180, Typinferenz, Kopfzeile, Big-Int-sicher. 100 % privat, kein Upload.
.env zu JSON Konverter
Kodierung & Formatierung
Eine .env-Datei einfügen, sofort JSON erhalten. Datenbankpasswörter, API-Keys und Tokens verlassen nie deinen Browser — 100% privat, kein Upload.
Kostenloser HTML-Entity-Decoder — HTML dekodieren
Kodierung & Formatierung
HTML-Entities dekodieren und HTML online unescapen — kostenlos, ohne Anmeldung, 100 % im Browser. Wandelt benannte, dezimale & Hex-Referenzen zurück in Zeichen; nichts wird hochgeladen.
Kostenloser HTML-Entity-Encoder — HTML escapen
Kodierung & Formatierung
HTML-Entities kodieren und Sonderzeichen escapen (< > & " ') — online, kostenlos, ohne Anmeldung, 100 % im Browser. Benannte, dezimale oder Hex-Ausgabe; nichts wird hochgeladen.