Unicode-Konverter

REFERENZ-TOOL

Unicode-Konverter

Konvertiere zwischen Unicode-Zeichen, Codepoints (U+XXXX), UTF-8, UTF-16, HTML-Entities und Dezimal/Hex. Mit Live-Vorschau und Emoji-Referenz.

Codepoints UTF-8 UTF-16 HTML-Entities Emojis

Datenschutz-Garantie: Alle Umrechnungen erfolgen zu 100% lokal in deinem Browser. Es werden keine Daten an Server gesendet. Perfekt für Entwickler, Webdesigner und Sprach-Enthusiasten.

Inhaltsverzeichnis

Schnellübersicht

  • Unicode-Konverter: Zeichen ↔ Codepoint ↔ UTF-8/16 ↔ HTML
  • 3 Modi: Zeichen-zu-Code, Code-zu-Zeichen, Text-zu-Code
  • Emoji-Referenz: Beliebte Emojis mit Codepoints
  • Live-Vorschau: Sofortige Umrechnung
  • Copy: Jedes Format per Klick kopieren
  • Theorie: Was ist Unicode? (Anfängerfreundlich)
  • Geschichte: Von ASCII zu UTF-8
  • FAQ: Häufige Fragen zu Unicode und UTF-8

1. Unicode-Konverter

Wähle einen Modus – die Umrechnung erfolgt sofort.

Emojis werden als 2 Codepoints behandelt
A
U+0041
Latin Capital Letter A
Unterstützt U+XXXX, 0xXX, Dezimal und Hex
A
U+0041
Latin Capital Letter A
Konvertiert jeden Buchstaben in Codepoints, UTF-8, UTF-16 und HTML-Entities
Zeichen-für-Zeichen Analyse
Zeichen-Details
Gesamtausgaben
Wussten Sie schon?
  • Unicode enthält über 149.000 Zeichen aus 160+ Schriftsystemen.
  • Der Codepoint U+1F600 ist das Emoji 😀 (Grinning Face).
  • Emojis belegen oft 2 Codepoints (Surrogate Pair) und 4 Bytes in UTF-8.
  • Die ersten 128 Unicode-Zeichen sind identisch mit ASCII – das macht UTF-8 abwärtskompatibel.
  • UTF-8 ist mit über 97% aller Websites die meistgenutzte Kodierung im Web.

2. Emoji-Referenz (beliebte Emojis)

Klick auf ein Emoji, um seinen Codepoint zu sehen.

3. Theorie – Unicode einfach erklärt

Verstehe die Grundlagen von Unicode und Zeichenkodierung – ohne Vorkenntnisse.

Was ist Unicode?

Unicode ist ein universeller Zeichensatz: Jedem Zeichen der Welt wird eine eindeutige Nummer (Codepoint) zugewiesen.

  • Format: U+XXXX (hexadezimal)
  • Umfang: Über 149.000 Zeichen
  • Ziel: Alle Sprachen und Symbole
A = U+0041, 😀 = U+1F600

Warum braucht man Unicode?

Vor Unicode gab es hunderte verschiedene Kodierungen:

  • Kompatibilität: Ein Zeichensatz für alle
  • Vollständigkeit: Alle Sprachen möglich
  • Emojis: Symbole und Grafiken
  • Zukunftssicher: Neue Zeichen nachrüstbar
Ohne Unicode: 日本語 nicht darstellbar

Wo wird Unicode eingesetzt?

Unicode begegnet dir überall:

  • Web: HTML, CSS, JSON (UTF-8 Standard)
  • Programmierung: Python, Java, JavaScript
  • Dateien: .txt, .csv, .json, .xml
  • Datenbanken: MySQL, PostgreSQL
  • Emojis: In Chats und sozialen Medien
HTML: <meta charset="UTF-8">

Tipps für Anfänger

  • UTF-8 verwenden: Immer und überall
  • HTML-Meta: <meta charset="UTF-8">
  • Datenbank: utf8mb4 für Emojis
  • Python: open(file, encoding='utf-8')
  • Emojis brauchen 4 Byte: Nicht 3!
UTF-8 = 1-4 Bytes pro Zeichen

Wussten Sie schon? Der Codepoint U+1F4A9 ist das 💩-Emoji (Pile of Poo). Es wurde 2010 in Unicode 6.0 aufgenommen und ist seitdem eines der beliebtesten Emojis überhaupt. Emojis haben die Art, wie wir digital kommunizieren, grundlegend verändert – über 10 Milliarden werden täglich allein auf Facebook verschickt! Übrigens: Die meisten Emojis bestehen aus 2 Codepoints (Surrogate Pairs), weil sie außerhalb der Basic Multilingual Plane (BMP) liegen.

4. Unicode-Kodierungen im Vergleich

Unicode definiert Codepoints, aber nicht, wie sie im Speicher abgelegt werden. Das machen UTF-8, UTF-16 und UTF-32:

Kodierung Bytes pro Zeichen Vorteil Nachteil Verwendung
UTF-8 1-4 ASCII-kompatibel, speichereffizient Variable Länge Web, Linux, JSON, HTML
UTF-16 2-4 Feste 2 Bytes für die meisten Zeichen Nicht ASCII-kompatibel, Endianness Windows, Java, JavaScript
UTF-32 4 Feste Länge, einfach 4× Speicherverbrauch Intern in manchen Systemen

UTF-8 (Web-Standard)

Die meistgenutzte Kodierung im Web:

  • ASCII-Zeichen: 1 Byte
  • Umlaute: 2 Bytes
  • Emojis: 4 Bytes
  • Vorteil: Abwärtskompatibel zu ASCII
A = 41, ä = C3 A4, 😀 = F0 9F 98 80

UTF-16 (Windows/Java)

Verwendet 2 oder 4 Bytes pro Zeichen:

  • BMP-Zeichen: 2 Bytes (0x0000-0xFFFF)
  • Emojis: 4 Bytes (Surrogate Pairs)
  • Endianness: LE (Windows) oder BE
  • BOM: Byte Order Mark am Anfang
A = 00 41, ä = 00 E4, 😀 = D8 3D DE 00

UTF-32

Feste 4 Bytes pro Zeichen:

  • Einfach: Direkte Codepoint-Darstellung
  • Verschwendung: 4 Bytes auch für 'A'
  • Verwendung: Intern, für Algorithmen
  • Selten: In Dateien fast nie
A = 00 00 00 41, 😀 = 00 01 F6 00

Was soll ich verwenden?

  • Web: Immer UTF-8
  • Linux/macOS: UTF-8
  • Windows-Intern: UTF-16 (aber Dateien: UTF-8)
  • Python: UTF-8 (Standard seit Python 3)
  • Datenbank: utf8mb4 (UTF-8 mit 4 Byte)
Faustregel: Immer UTF-8!

5. Geschichte der Zeichenkodierung

Von ASCII über Latin-1 zu Unicode – wie Computer lernten, alle Sprachen zu verstehen.

1963

ASCII entsteht

Die American Standards Association standardisiert ASCII mit 7 Bit und 128 Zeichen. Die Basis für alle modernen Kodierungen.

1981

IBM PC und Extended ASCII

IBM führt Extended ASCII mit 256 Zeichen ein. Damit sind Umlaute, Akzente und Grafikzeichen darstellbar. Weltweiter Standard für PCs.

1987

ISO 8859

Die ISO 8859-Familie wird veröffentlicht. Verschiedene Varianten für verschiedene Sprachen: Latin-1 (Westeuropa), Latin-2 (Osteuropa), etc. Ein Flickenteppich.

1991

Unicode 1.0

Unicode 1.0 wird veröffentlicht – mit 7.161 Zeichen. Die erste Version des universellen Zeichensatzes. UTF-8 wird gleichzeitig vorgestellt.

1993

Unicode wird ISO-Standard

Unicode wird mit ISO 10646 kompatibel. Die beiden Standards werden zusammengeführt. Endgültiger Durchbruch für Unicode.

2010

Emojis in Unicode 6.0

Emojis werden offiziell in Unicode 6.0 aufgenommen – mit über 700 Zeichen. Anfangs umstritten, heute aus der digitalen Kommunikation nicht mehr wegzudenken.

Heute

Unicode überall

Unicode 15.1 enthält über 149.000 Zeichen aus 160+ Schriftsystemen. UTF-8 ist mit über 97% aller Websites die meistgenutzte Kodierung weltweit – ASCII lebt in ihr weiter.

6. FAQ – Spannende Fragen & Antworten

Häufige Fragen zu Unicode

Was ist der Unterschied zwischen Unicode und UTF-8?

Das ist ein häufiges Missverständnis – die beiden Begriffe sind nicht dasselbe:

AspektUnicodeUTF-8
WasZeichensatz (Standard)Kodierung (Speicherformat)
DefiniertCodepoints (U+XXXX)Byte-Folgen
BeispielA = U+0041A = 0x41 (1 Byte)
Alternative-UTF-16, UTF-32

Analogie:

  • Unicode ist wie ein Wörterbuch: Es sagt, welche Zeichen es gibt und wie sie heißen.
  • UTF-8 ist wie eine Schrift: Es legt fest, wie die Zeichen auf Papier gebracht werden.

Beispiel: Das Zeichen "ä" (U+00E4) wird in:

  • UTF-8: als 0xC3 0xA4 (2 Bytes) gespeichert
  • UTF-16: als 0x00E4 (2 Bytes) gespeichert
  • UTF-32: als 0x000000E4 (4 Bytes) gespeichert

Fazit: Unicode ist der Standard, UTF-8 ist eine Kodierung davon.

Warum brauchen Emojis 4 Bytes in UTF-8?

Das liegt an der Unicode-Struktur und der UTF-8-Kodierung:

Unicode-Planes:

  • BMP (Basic Multilingual Plane): U+0000 bis U+FFFF (2 Bytes in UTF-16)
  • SMP (Supplementary Multilingual Plane): U+10000 bis U+10FFFF (4 Bytes in UTF-16)

Die meisten Emojis liegen in der SMP (ab U+1F300 für Smileys), z.B. 😀 = U+1F600.

UTF-8-Kodierung nach Codepoint-Bereich:

CodepointBytesBeispiel
U+0000 - U+007F1A, 0, !
U+0080 - U+07FF2ä, ñ, λ
U+0800 - U+FFFF3€, 日, ✓
U+10000 - U+10FFFF4😀, 𝕏, 🎉

Beispiel 😀 (U+1F600):

U+1F600 → UTF-8: F0 9F 98 80 (4 Bytes)

Konsequenz für Datenbanken: MySQL's klassisches utf8 ist eigentlich nur 3-Byte-UTF-8 und kann keine Emojis speichern! Verwende utf8mb4.

Was bedeutet "Surrogate Pair"?

Surrogate Pairs sind ein Trick in UTF-16, um Zeichen außerhalb der BMP (Basic Multilingual Plane) darzustellen:

Das Problem:

  • UTF-16 verwendet normalerweise 2 Bytes pro Zeichen
  • Damit sind nur U+0000 bis U+FFFF darstellbar
  • Emojis liegen aber bei U+1F600 (außerhalb!)

Die Lösung: Surrogate Pairs

  • Zwei aufeinanderfolgende 2-Byte-Werte
  • High Surrogate: U+D800 - U+DBFF (erstes Wort)
  • Low Surrogate: U+DC00 - U+DFFF (zweites Wort)
  • Kombiniert ergeben sie einen Codepoint > U+FFFF

Beispiel 😀 (U+1F600):

U+1F600 → Surrogate Pair: D83D DE00
(= 0xD83D 0xDE00 in UTF-16)

Berechnung:

Codepoint - 0x10000 = 0xF600
High = 0xD800 + (0xF600 >> 10) = 0xD83D
Low = 0xDC00 + (0xF600 & 0x3FF) = 0xDE00

Auswirkung in JavaScript:

  • "😀".length gibt 2 zurück (nicht 1!)
  • Grund: JavaScript zählt UTF-16 Code Units
  • Lösung: Array.from("😀").length → 1

In UTF-8 gibt es keine Surrogate Pairs – dort wird jedes Zeichen direkt als 1-4 Bytes kodiert.

Was ist eine BOM (Byte Order Mark)?

Die BOM (Byte Order Mark) ist ein spezielles Zeichen am Anfang einer Unicode-Datei, um die Byte-Reihenfolge (Endianness) anzugeben:

Was ist Endianness?

  • Big Endian (BE): Höchstwertiges Byte zuerst (z.B. 00 41 für 'A')
  • Little Endian (LE): Niedrigstwertiges Byte zuerst (z.B. 41 00 für 'A')

BOM-Werte:

KodierungBOM (Hex)
UTF-8EF BB BF
UTF-16 BEFE FF
UTF-16 LEFF FE
UTF-32 BE00 00 FE FF
UTF-32 LEFF FE 00 00

UTF-8 BOM – ja oder nein?

  • Empfehlung: Keine BOM in UTF-8-Dateien!
  • Grund: UTF-8 hat keine Endianness (byteweise definiert)
  • Problem: Die BOM kann als sichtbares Zeichen erscheinen (z.B. auf Webseiten)
  • Ausnahme: Windows-Notepad fügt manchmal BOM hinzu

Wo ist BOM wichtig?

  • UTF-16/UTF-32: Essentiell, da Endianness nicht anders erkennbar
  • UTF-8: Überflüssig, meist sogar schädlich

Erkennungszeichen: Wenn in einer Konfigurationsdatei plötzlich  am Anfang steht, ist das eine UTF-8-BOM, die als Text interpretiert wurde!

Warum sehen meine Umlaute in der Datenbank falsch aus?

Das ist ein klassisches Encoding-Problem, oft als "Mojibake" bezeichnet. Meist liegt es an inkonsistenten Kodierungen:

Häufige Ursachen:

  • Verbindung: Client sendet UTF-8, Datenbank erwartet Latin-1
  • Tabellen-Charset: Tabelle ist auf latin1 statt utf8mb4
  • Kollation: Falsche Sortierreihenfolge (z.B. utf8_general_ci)
  • PHP/Java: Keine explizite UTF-8-Deklaration

Typisches Symptom:

Eingegeben: Grüße
Angezeigt: Grüße ← Mojibake!

Warum passiert das?

  • "ü" ist in UTF-8: 0xC3 0xBC (2 Bytes)
  • Wenn als Latin-1 gelesen: "ü" (2 Zeichen!)
  • Deshalb: Grüße → Grüße

Die Lösung für MySQL/MariaDB:

  • Datenbank: CREATE DATABASE ... CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • Tabelle: ... DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  • Verbindung (PHP): $pdo->exec("SET NAMES utf8mb4");
  • Verbindung (Python): charset='utf8mb4'

Wichtig: utf8 reicht nicht! MySQL's utf8 ist nur 3-Byte-UTF-8. Verwende immer utf8mb4.

Was ist der Unterschied zwischen Codepoint, Grapheme und Glyphe?

Diese drei Begriffe sind zentral für das Verständnis von Textverarbeitung:

BegriffBedeutungBeispiel
CodepointZahl im Unicode-StandardU+00E4 = ä
GraphemeWas der Nutzer als "Zeichen" sieht"é" (aus e + Akzent)
GlypheVisuelle Darstellung in einer SchriftartDie Form von "ä" in Arial

Das Problem mit Codepoints:

  • "é" kann als 1 Codepoint (U+00E9) oder 2 Codepoints (e + U+0301) dargestellt werden
  • "👨‍👩‍👧" (Familie) = 5 Codepoints (4 Personen + 3 Zero-Width Joiners)
  • "🇩🇪" (Deutschland-Flagge) = 2 Codepoints (Regional Indicator D + E)

Praxis-Konsequenz:

  • string.length in JavaScript zählt Codepoints (mit Surrogate Pairs)
  • Nutzer sieht aber Grapheme (kombinierte Zeichen)
  • Deshalb: "👨‍👩‍👧".length === 8 in JS, aber 1 Grapheme

Lösung für korrekte Zeichenzählung:

  • JavaScript: Intl.Segmenter (modern)
  • Python: grapheme Bibliothek
  • Rust: unicode-segmentation

Interessant: Ein einzelner Codepoint kann unterschiedlich aussehen (Glyphe), je nach Schriftart und Kontext. Deshalb sind Emojis je nach System unterschiedlich gestaltet.

Wie funktionieren HTML-Entities vs. Unicode?

HTML-Entities sind eine alternative Darstellung für Unicode-Zeichen – besonders in HTML/XML, wo manche Zeichen Sonderbedeutung haben:

ZeichenUnicodeHTML-EntityDezimal
<U+003C&lt;&#60;
&U+0026&amp;&#38;
©U+00A9&copy;&#169;
€U+20AC&euro;&#8364;
😀U+1F600(kein benannter)&#128512;

Wann HTML-Entities verwenden?

  • Pflicht: Für <, >, & im HTML-Text
  • Sinnvoll: Wenn die Seite keine UTF-8-Deklaration hat
  • Nicht nötig: In UTF-8-Dokumenten können die Zeichen direkt stehen

Beispiele:

<p>Preis: 5 &lt; 10 &amp; 3 &gt; 1</p>
&copy; 2024 – Alle Rechte vorbehalten
&euro; 19,99

Best Practice 2024:

  • UTF-8 als Zeichensatz deklarieren (<meta charset="UTF-8">)
  • Unicode-Zeichen direkt schreiben (keine Entities nötig)
  • Ausnahme: &lt;, &gt;, &amp; in Code-Beispielen
Wie konvertiere ich Text in Python, JavaScript und Bash?

Hier eine Übersicht der wichtigsten Sprachen:

Python 3:

# Zeichen → Codepoint
ord('A') # 65
ord('ä') # 228
ord('😀') # 128512

# Codepoint → Zeichen
chr(65) # 'A'
chr(228) # 'ä'
chr(128512) # '😀'

# UTF-8 Bytes
'ä'.encode('utf-8') # b'\xc3\xa4'
bytes.fromhex('c3a4').decode('utf-8') # 'ä'

JavaScript:

// Zeichen → Codepoint
'A'.charCodeAt(0) // 65
'A'.codePointAt(0) // 65
'😀'.codePointAt(0) // 128512

// Codepoint → Zeichen
String.fromCharCode(65) // 'A'
String.fromCodePoint(128512) // '😀'

// UTF-8 Bytes
new TextEncoder().encode('ä') // Uint8Array [195, 164]
new TextDecoder().decode(new Uint8Array([195, 164])) // 'ä'

Bash/Linux:

# Zeichen → Codepoint
printf '%d\n' "'A" # 65
printf '%d\n' "'ä" # 228

# Codepoint → Zeichen (hex)
printf '\u0041\n' # A
printf '\u00e4\n' # ä
printf '\U0001F600\n' # 😀

# UTF-8 Bytes anzeigen
echo -n "ä" | xxd # c3a4

Wichtig:

  • Python 2 hatte viele Probleme mit Unicode – Python 3 ist Standard
  • JavaScript arbeitet intern mit UTF-16 (Surrogate Pairs!)
  • Bash verwendet \u für BMP und \U für alle

Zusammenfassung

Die wichtigsten Punkte

  • Unicode: Universeller Zeichensatz mit 149.000+ Zeichen
  • Codepoint: U+XXXX (hexadezimal)
  • UTF-8: 1-4 Bytes pro Zeichen, ASCII-kompatibel, Web-Standard
  • UTF-16: 2-4 Bytes, verwendet Surrogate Pairs
  • Emojis: Meist 4 Bytes in UTF-8, 2 Codepoints
  • Surrogate Pairs: Mechanismus für Zeichen außerhalb der BMP
  • BOM: Nur für UTF-16/32 nötig, in UTF-8 meist schädlich
  • Mojibake: Falsche Anzeige durch inkonsistente Kodierung
  • Best Practice: Überall UTF-8 (utf8mb4 in MySQL)
  • Unser Tool: Live-Konvertierung in alle Formate

Weitere Tools

ASCII-Tabelle

Vollständige ASCII-Tabelle mit Dezimal, Hex, Oktal und Binär.

Zum Tool
Zahlensystem-Konverter

Konvertiere Zahlen zwischen Binär, Oktal, Dezimal und Hex.

Zum Tool
Hash Generator

MD5, SHA-1, SHA-256 und SHA-512 für Text und Dateien.

Zum Tool
Farbkonverter

Konvertiere Farben zwischen HEX, RGB, HSL, HSV und CMYK.

Zum Tool