Emoji-zu-Unicode-Konverter
Füge ein Emoji ein, oder einen ganzen Satz mit Emojis, und du bekommst jedes Format, das Entwickler brauchen: Unicode-Codepunkte, HTML-Entitys, CSS- und JavaScript-Escapes, Python und die rohen UTF-8-Bytes. Es funktioniert auch umgekehrt. Alles läuft in deinem Browser, und der Längenzähler zeigt, warum ein einzelnes Emoji in einer Sprache als sieben Zeichen und in einer anderen als achtundzwanzig Bytes zählen kann.
- Sichtbare Zeichen
- 3
- Codepunkte (Python len)
- 6
- UTF-16-Einheiten (JS .length)
- 10
- UTF-8-Bytes
- 22
| Unicode-Codepunkte | U+1F44D U+1F3FD U+2764 U+FE0F U+1F1EF U+1F1F5 | |
|---|---|---|
| HTML-Entity (hex) | 👍🏽❤️🇯🇵 | |
| HTML-Entity (dezimal) | 👍🏽❤️🇯🇵 | |
| CSS content | \1F44D \1F3FD \2764 \FE0F \1F1EF \1F1F5 | |
| JavaScript (ES6) | \u{1F44D}\u{1F3FD}\u2764\uFE0F\u{1F1EF}\u{1F1F5} | |
| UTF-16 (Java, C#, JSON) | \uD83D\uDC4D\uD83C\uDFFD\u2764\uFE0F\uD83C\uDDEF\uD83C\uDDF5 | |
| Python | \U0001F44D\U0001F3FD\u2764\uFE0F\U0001F1EF\U0001F1F5 | |
| UTF-8-Bytes | F0 9F 91 8D F0 9F 8F BD E2 9D A4 EF B8 8F F0 9F 87 AF F0 9F 87 B5 | |
| URL-kodiert | %F0%9F%91%8D%F0%9F%8F%BD%E2%9D%A4%EF%B8%8F%F0%9F%87%AF%F0%9F%87%B5 |
Acht Emojis, vier verschiedene Längen
Jede Zeile unten ist ein Emoji auf dem Bildschirm. Die anderen Spalten zeigen, was verschiedene Programmiersprachen und Datenbanken zählen, berechnet mit demselben Konverter wie im Tool oben.
| Emoji | Codepunkte | Sichtbar | Python | JavaScript | UTF-8-Bytes |
|---|---|---|---|---|---|
| 😀Einzelner Codepunkt | U+1F600 | 1 | 1 | 2 | 4 |
| ❤️Textsymbol plus Stilselektor | U+2764 U+FE0F | 1 | 2 | 2 | 6 |
| 👍🏽Emoji plus Hautton | U+1F44D U+1F3FD | 1 | 2 | 4 | 8 |
| 🇯🇵Zwei Regional-Indicator-Buchstaben | U+1F1EF U+1F1F5 | 1 | 2 | 4 | 8 |
| 👩💻Mit einem Zero Width Joiner verbunden | U+1F469 U+200D U+1F4BB | 1 | 3 | 5 | 11 |
| 1️⃣Ziffer, Selektor und Tastenkappe | U+0031 U+FE0F U+20E3 | 1 | 3 | 3 | 7 |
| 🏴Tag-Sequenz | U+1F3F4 U+E0067 U+E0062 U+E0073 U+E0063 U+E0074 U+E007F | 1 | 7 | 14 | 28 |
| Emoji 18.0 (2026) | U+1FAFA | 1 | 1 | 2 | 4 |
Warum ein Emoji sieben Zeichen lang sein kann
Codepunkte sind die Nummern, die Unicode vergibt, und ein Emoji kann aus mehreren davon bestehen. Die Flagge Schottlands ist das deutlichste Beispiel: eine schwarze Flagge, fünf unsichtbare Tag-Buchstaben, die gbsct ergeben, und ein Abschluss-Tag, insgesamt sieben Codepunkte. JavaScript speichert Text als UTF-16, wo alles oberhalb von U+FFFF zwei Einheiten belegt, also hat dieselbe Flagge eine .length von 14. UTF-8 braucht für jeden dieser Codepunkte vier Bytes, in einer Datenbank belegt sie also 28 Bytes. Nur eine Zahl entspricht dem, was ein Mensch sieht, und ausgerechnet nach ihr fragt der meiste Code nie. In JavaScript zählst du mit Intl.Segmenter und der Granularität grapheme; in Python erledigt das Muster \X des Drittanbietermoduls regex dieselbe Aufgabe.
Emojis in MySQL ohne Fragezeichen speichern
Werden Emojis nach dem Speichern zu ????, nutzt die Spalte fast sicher MySQLs Zeichensatz utf8, der trotz seines Namens höchstens drei Bytes pro Zeichen speichert. Jedes Emoji oberhalb von U+FFFF braucht vier, also schlägt das Einfügen fehl oder die Daten gehen verloren. Die Lösung heißt utf8mb4: Wandle die Tabelle mit ALTER TABLE ... CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci um und stell sicher, dass auch die Verbindung selbst utf8mb4 nutzt, denn eine korrekte Tabelle hinter einer utf8-Verbindung verstümmelt den Text trotzdem. MySQL 8.0 hat utf8mb4 zum Standard gemacht, das Problem trifft also vor allem ältere Datenbanken, die aktualisiert statt neu angelegt wurden.
HTML-Entitys, CSS und das Leerzeichen am Ende
Auf einer Seite, die als UTF-8 ausgeliefert wird, und das sind fast alle, kannst du das Emoji direkt ins HTML einfügen; Entitys wie 👍 brauchst du nur, wenn ein Template- oder E-Mail-System rohe Zeichen verstümmelt. CSS ist pingeliger. In einer content-Eigenschaft läuft ein Escape wie \1F44D bis zum ersten Zeichen, das kein Hex ist. Könnte das nächste Zeichen als Hex gelesen werden, musst du das Escape deshalb mit einem Leerzeichen beenden. Dieses Leerzeichen wird verschluckt, nicht ausgegeben. Unsere CSS-Zeile setzt es immer zwischen die Codepunkte, weshalb ein Daumen hoch mit Hautton als \1F44D \1F3FD erscheint, mit einer Lücke, die genau so gewollt ist.
Warum X jedes Emoji als zwei Zeichen zählt
Zeichenlimits sind ein weiterer Punkt, an dem die Zählungen auseinandergehen. Die Open-Source-Zählbibliothek von X wertet die meisten Emojis mit zwei Zeichen auf das Limit von 280, egal woraus sie bestehen. 👍 und 👩💻 kosten also gleich viel, obwohl das eine ein einzelner Codepunkt ist und das andere drei. SMS ist strenger: Ein einziges Emoji zwingt die ganze Nachricht in die Kodierung UCS-2, wodurch eine einzelne SMS von 160 auf 70 Zeichen schrumpft. Lehnt ein Formular, eine Datenbankspalte oder eine soziale Plattform Text ab, der kurz aussieht, zeigt die Längentabelle oben meist den Grund.
Emoji-Glossar: Codepunkte, Verbinder und SelektorenEmoji-Shortcodes für Slack, Discord und GitHubAlle Emojis zum Kopieren
Fragen zu Emoji-Codepunkten
Was ist der Unicode für das Smiley-Emoji?
😀 grinsendes Gesicht ist U+1F600. In HTML schreibst du 😀, in CSS \1F600, in JavaScript \u{1F600} oder das ältere \uD83D\uDE00 und in Python \U0001F600. Füge ein beliebiges anderes Emoji in den Konverter ein, um seine Codes zu bekommen.
Warum hat ein Emoji zwei Codepunkte?
Viele Emojis sind Sequenzen. ❤️ ist das Herzsymbol U+2764 plus der Stilselektor U+FE0F, 👍🏽 ist ein Daumen hoch plus ein Hautton, und Flaggen bestehen aus zwei Buchstaben. Dein Gerät zeichnet die Sequenz als ein Bild.
Was ist der Unterschied zwischen \u{1F600} und \uD83D\uDE00?
Beides ist dasselbe Emoji. \u{1F600} benennt den Codepunkt direkt und funktioniert in modernem JavaScript. \uD83D\uDE00 ist das UTF-16-Surrogatpaar, die einzige Form, die älteres JavaScript, Java, C# und JSON für Zeichen oberhalb von U+FFFF akzeptieren.
Wie viele Bytes hat ein Emoji?
In UTF-8 vier Bytes für jeden Codepunkt oberhalb von U+FFFF, ein einfaches Emoji wie 😀 hat also vier Bytes. Sequenzen summieren sich: 👍🏽 hat 8 Bytes, 👩💻 11 und die Flagge Schottlands 28.
Schickt dieser Konverter meinen Text irgendwohin?
Nein. Die Umwandlung läuft komplett in deinem Browser mit JavaScript. Nichts, was du eintippst oder einfügst, wird hochgeladen oder gespeichert.
