Blog
Deutsch

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

ZeichenCodepunktUTF-8UTF-16DezimalSichtbares Zeichen
CU+0043430043671
aU+0061610061972
fU+00666600661023
éU+00E9C3 A900E92334
(unsichtbar)U+0020200020325
😀U+1F600F0 9F 98 80D83D DE001285126
(unsichtbar)U+0020200020327
한U+D55CED 95 9CD55C546208

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

  1. Wählen Sie eine Richtung: Text → Code oder Code → Text.
  2. Für Text → Code tippen Sie in das Textfeld. Das Beispiel „Café 😀 한“ steht bereits darin, sodass sofort Ergebnisse erscheinen.
  3. Schalten Sie „ASCII unverändert lassen“ aus, um jedes Zeichen zu maskieren, nicht nur die Nicht-ASCII-Zeichen.
  4. Kopieren Sie das benötigte Format. Bytevergleich und Zeichentabelle stehen darunter.
  5. 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.
  6. 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 \uXXXX pro 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é &#x1F600; 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.

Fehlt ein Tool?