Unicode-Konverter — Codepunkte und UTF-8-Bytes
Text in Unicode-Codepunkte, Escapes und UTF-8-Bytes umwandeln und zurück
Verarbeitung im Browser · kein Hochladen
8 sichtbare Zeichen · 8 Codepunkte · UTF-16-Länge 9
Ergebnisse
Codepunkte (U+XXXX)
U+0043 U+0061 U+0066 U+00E9 U+0020 U+1F600 U+0020 U+D55C
JavaScript / JSON (\uXXXX)
Caf\u00E9 \uD83D\uDE00 \uD55C
ES6 (\u{...})
Caf\u{E9} \u{1F600} \u{D55C}
HTML hexadezimal (&#x...;)
Café 😀 한
HTML dezimal (&#...;)
Café 😀 한
UTF-8-Bytes (hex)
43 61 66 C3 A9 20 F0 9F 98 80 20 ED 95 9C
UTF-16BE-Bytes (hex)
00 43 00 61 00 66 00 E9 00 20 D8 3D DE 00 00 20 D5 5C
Bytes je Kodierung
- UTF-8
- 14 Bytes
- UTF-16
- 18 Bytes
- EUC-KR (CP949)
- 7 Bytes
- 2 Zeichen sind in EUC-KR nicht darstellbar (nicht mitgezählt)
EUC-KR (CP949) ist die alte koreanische Kodierung: Die 2.350 Hangul-Silben aus KS X 1001 und die übrigen 8.822 modernen Silben in der CP949-Erweiterung (UHC) belegen jeweils 2 Bytes. In UTF-8 belegt eine Hangul-Silbe 3 Bytes und ein Emoji 4.
Zeichentabelle
| Zeichen | Codepunkt | UTF-8 | UTF-16 | Dezimal | Sichtbares Zeichen |
|---|---|---|---|---|---|
| C | U+0043 | 43 | 0043 | 67 | 1 |
| a | U+0061 | 61 | 0061 | 97 | 2 |
| f | U+0066 | 66 | 0066 | 102 | 3 |
| é | U+00E9 | C3 A9 | 00E9 | 233 | 4 |
| (unsichtbar) | U+0020 | 20 | 0020 | 32 | 5 |
| 😀 | U+1F600 | F0 9F 98 80 | D83D DE00 | 128512 | 6 |
| (unsichtbar) | U+0020 | 20 | 0020 | 32 | 7 |
| 한 | U+D55C | ED 95 9C | D55C | 54620 | 8 |
Was ist das?
Geben Sie Text ein und Sie erhalten alle gängigen Schreibweisen auf einmal, jede mit eigener Kopieren-Schaltfläche: Unicode-Codepunkte, JavaScript- und JSON-Escapes, die ES6-Form, hexadezimale und dezimale HTML-Referenzen sowie die rohen UTF-8- und UTF-16BE-Bytes. So bringen Sie Nicht-ASCII-Text wie Umlaute sicher in Quellcode, lesen die \uXXXX-Folgen in einem Log oder finden heraus, warum aus Text Zeichensalat geworden ist.
Außerdem vergleicht das Tool die Bytezahlen in UTF-8, UTF-16 und der alten koreanischen Kodierung EUC-KR (CP949) und listet jeden Codepunkt in einer Tabelle auf. Die Gegenrichtung wandelt Escapes oder Hex-Bytes zurück in Text. Alles läuft in Ihrem Browser, und nichts wird gespeichert.
Anleitung
- Wählen Sie eine Richtung: Text → Code oder Code → Text.
- Für Text → Code tippen Sie in das Textfeld. Das Beispiel „Café 😀 한“ steht bereits darin, sodass sofort Ergebnisse erscheinen.
- Schalten Sie „ASCII unverändert lassen“ aus, um jedes Zeichen zu maskieren, nicht nur die Nicht-ASCII-Zeichen.
- Kopieren Sie das benötigte Format. Bytevergleich und Zeichentabelle stehen darunter.
- Für Code → Text lassen Sie „Automatisch erkennen“ für Escapes und U+-Werte eingestellt, auch gemischt, oder wählen ein Hex-Byte-Format für Bytelisten.
- Kopieren Sie den dekodierten Text mit der zugehörigen Schaltfläche.
Funktionsweise
- Codepunkte werden als U+ mit großgeschriebenen Hexziffern geschrieben, auf mindestens vier Stellen aufgefüllt (U+0041) und durch Leerzeichen getrennt.
- JavaScript-/JSON-Escapes schreiben ein
\uXXXXpro UTF-16-Codeeinheit, alles ab U+10000 wird also zum Surrogatpaar. Die ES6-Form schreibt ein\u{...}pro Codepunkt. - HTML-Referenzen schreiben ein
&#x…;oder&#…;pro Codepunkt. - ASCII unverändert lassen lässt druckbares ASCII (U+0020 bis U+007E) stehen, außer dem Backslash (JavaScript) und & < > “ ’ (HTML), damit sich die Ausgabe eindeutig zurückwandeln lässt. Zeilenumbrüche und Tabulatoren werden immer maskiert.
- UTF-8-Bytes liefert der TextEncoder des Browsers. UTF-16 schreibt zwei Bytes pro Codeeinheit, das höherwertige Byte zuerst (Big Endian).
- EUC-KR (CP949): Eine Rückwärtstabelle entsteht, indem jedes Zwei-Byte-Paar (Leitbyte 0x81 bis 0xFE, Folgebyte 0x41 bis 0xFE) mit dem EUC-KR-Decoder des Browsers dekodiert wird; ASCII belegt ein Byte. Alle 11.172 Silben von 가 bis 힣 belegen zwei Bytes: 2.350 aus KS X 1001 und 8.822 aus der CP949-Erweiterung (UHC), die nach dem CP949-Schema ergänzt wird, wenn ein Decoder nur KS X 1001 kennt.
- Sichtbare Zeichen sind Graphem-Cluster aus dem Intl.Segmenter des Browsers (Unicode Standard Annex #29). Die Tabelle hat eine Zeile pro Codepunkt, markiert Zeichen aus mehreren Codepunkten und zeigt die ersten 200.
- Dekodieren: U+-Werte haben 4 bis 8 Hexziffern, und Leerzeichen oder Kommas zwischen U+-Werten gelten als Trennzeichen. Werte über U+10FFFF und einzelne Surrogate werden mit der Zeichenposition gemeldet. Bei Byte-Eingaben werden Leerzeichen, Kommas, Doppelpunkte, Bindestriche und die Präfixe 0x, \x oder % ignoriert, und ungültiges UTF-8 wird mit der Byteposition gemeldet.
- Die Eingabe ist auf 20.000 Zeichen begrenzt.
Beispiele
| Text | Codepunkt | JavaScript | UTF-8-Bytes | UTF-8 / UTF-16 / EUC-KR |
|---|---|---|---|---|
| A | U+0041 | A (oder A ohne „ASCII unverändert lassen“) |
41 | 1 / 2 / 1 Bytes |
| é | U+00E9 | é |
C3 A9 | 2 / 2 / nicht darstellbar |
| ü | U+00FC | ü |
C3 BC | 2 / 2 / nicht darstellbar |
| 中 | U+4E2D | 中 |
E4 B8 AD | 3 / 2 / 2 Bytes |
| 한 | U+D55C | 한 |
ED 95 9C | 3 / 2 / 2 Bytes |
| 😀 | U+1F600 | 😀 |
F0 9F 98 80 | 4 / 4 / nicht darstellbar |
Das Standardbeispiel „Café 😀 한“ hat 8 sichtbare Zeichen, 8 Codepunkte und eine UTF-16-Länge von 9. Es belegt 14 Bytes in UTF-8, 18 in UTF-16 und 7 in EUC-KR, wo é und das Emoji nicht darstellbar sind.
In der Gegenrichtung macht die automatische Erkennung aus Café 😀 U+D55C wieder „Café 😀 한“, und die UTF-8-Bytes 43 61 66 C3 A9 ergeben „Café“.
Häufige Fragen
Was ist der Unterschied zwischen Codepunkt und Kodierung?
Ein Codepunkt ist die Nummer, die Unicode einem Zeichen gibt, etwa U+00E9 für é. Eine Kodierung legt fest, wie diese Nummer als Bytes gespeichert wird. Dasselbe é ist in UTF-8 C3 A9 und in UTF-16 00 E9, und die koreanische Silbe 한 (U+D55C) ist in UTF-8 ED 95 9C, in der alten koreanischen Kodierung EUC-KR aber C7 D1.
Warum wird ein Emoji zu zwei \uXXXX-Escapes?
Strings in JavaScript und JSON sind Folgen von UTF-16-Codeeinheiten. Zeichen über U+FFFF brauchen zwei Einheiten, ein sogenanntes Surrogatpaar, daher wird 😀 (U+1F600) als 😀 geschrieben. Die ES6-Form \u{1F600} nennt den Codepunkt direkt und kommt mit einem Escape aus.
Warum zählt ein Emoji als mehrere Codepunkte?
Viele Emojis sind Sequenzen. Das Familien-Emoji besteht aus drei Personen-Emojis, verbunden durch zwei Zero Width Joiner (U+200D). Es ist also ein sichtbares Zeichen, aber fünf Codepunkte, acht UTF-16-Einheiten und 18 UTF-8-Bytes. Hautfarben, Flaggen und zerlegtes Koreanisch funktionieren genauso, deshalb zeigt die Zusammenfassung alle drei Werte.
Was bedeutet „in EUC-KR nicht darstellbar“?
EUC-KR (CP949) ist eine alte koreanische Kodierung, die Hangul, Hanja und eine Reihe von Symbolen abdeckt, aber keine Emojis und keine Buchstaben wie é oder ü. Solche Zeichen fließen nicht in die EUC-KR-Bytezahl ein und werden getrennt gezählt. Hat Ihr Browser keinen EUC-KR-Decoder, wird der Wert ausgeblendet.
Wird mein Text irgendwohin gesendet?
Nein. Jede Umwandlung läuft in Ihrem Browser, und nichts, was Sie eingeben, wird gespeichert oder hochgeladen.