Zur Übersicht

Unicode, Codepunkte und UTF-8 verständlich erklärt

Unicode einfach erklärt: Was sind Codepunkte, wie funktioniert UTF-8, was sind HTML-Entities, warum verrutschen Emojis und wie liest du die Bytes hinter einem Zeichen?

Hinter jedem Buchstaben, jedem Sonderzeichen und jedem Emoji auf deinem Bildschirm steckt eine Zahl. Damit Computer weltweit dieselben Texte korrekt darstellen können, gibt es Unicode – einen universellen Standard, der praktisch jedes Schriftzeichen der Welt einer eindeutigen Nummer zuordnet. Dieser Ratgeber erklärt, was Codepunkte, UTF-8-Bytes und HTML-Entities sind und warum es manchmal zu kaputten Zeichen kommt.

Was ist Unicode?

Früher hatte jedes System eigene Zeichentabellen: ASCII deckte nur 128 Zeichen ab (genug für Englisch), und für Umlaute oder kyrillische Schrift gab es Dutzende inkompatibler Erweiterungen wie Latin-1 oder Windows-1252. Das führte zu chaotischen Darstellungsfehlern, sobald Texte zwischen Systemen wanderten.

Unicode löst dieses Problem, indem es jedem Zeichen einen eindeutigen Codepunkt gibt – eine Nummer, die unabhängig von Plattform, Programm und Sprache gilt. Der Buchstabe "A" hat den Codepunkt U+0041, das deutsche "ä" U+00E4, und das Herz-Emoji 💚 liegt bei U+1F49A.

Wenn du wissen willst, welche Nummer, welche HTML-Entity und welche Bytes hinter einem bestimmten Zeichen stecken, hilft dir das Zeichen-Info-Tool: Du gibst ein beliebiges Zeichen ein – Buchstabe, Sonderzeichen oder Emoji – und siehst sofort Codepunkt, HTML-Entity und UTF-8-Bytes.

Codepunkt vs. Encoding

Ein wichtiger Unterschied, der oft verwechselt wird: Der Codepunkt ist die abstrakte Nummer eines Zeichens (z. B. U+00E4 für ä). Das Encoding bestimmt, wie diese Nummer als konkrete Bytes gespeichert wird. Unicode definiert die Codepunkte, UTF-8 (und andere) definieren die Speicherung.

UTF-8 – der De-facto-Standard

UTF-8 ist die heute dominierende Kodierung im Web. Sie ist variabel: Ein Zeichen belegt zwischen 1 und 4 Bytes.

  • 1 Byte für klassische ASCII-Zeichen (A–Z, a–z, Ziffern). Dadurch ist UTF-8 abwärtskompatibel zu ASCII.
  • 2 Bytes für die meisten europäischen Sonderzeichen, etwa ä, ö, ü, é, ß.
  • 3 Bytes für viele weitere Schriftsysteme und Symbole.
  • 4 Bytes für Emojis und seltene Zeichen aus den höheren Unicode-Ebenen.

Genau deshalb ist die Byte-Länge eines Textes nicht gleich der Zeichenanzahl. Das Wort "Café" hat vier Zeichen, aber in UTF-8 fünf Bytes, weil das "é" zwei Bytes belegt.

HTML-Entities

In HTML haben manche Zeichen eine Sonderbedeutung – das spitze Klammerzeichen < beginnt zum Beispiel ein Tag. Damit solche Zeichen als Text und nicht als Code interpretiert werden, nutzt man HTML-Entities. Es gibt zwei Formen:

  • Benannte Entities: &amp; für &, &lt; für <, &copy; für ©.
  • Numerische Entities: Der Codepunkt direkt, dezimal als &#228; oder hexadezimal als &#xE4; – beides ergibt ä.

Numerische Entities funktionieren für jedes Unicode-Zeichen, auch wenn es keinen benannten Kurznamen hat.

Warum verrutschen Emojis und Umlaute manchmal?

Das berüchtigte "ä" statt "ä" oder das Fragezeichen-im-Rechteck-Symbol entsteht fast immer durch ein Encoding-Missverständnis: Ein Text wird in UTF-8 gespeichert, aber als Latin-1 gelesen (oder umgekehrt). Die Bytes sind dann technisch noch da, werden aber falsch interpretiert.

Bei Emojis kommt eine weitere Besonderheit hinzu: Viele moderne Emojis bestehen aus mehreren Codepunkten, die per Zero-Width-Joiner verbunden werden. Das Familien-Emoji etwa ist eine Kette aus mehreren Personen-Emojis. Zählt ein System nur Codepunkte, kommt es bei der Längenbestimmung leicht durcheinander – ein häufiger Grund, warum Zeichenlimits in sozialen Netzwerken bei Emojis seltsam wirken.

Praktische Anwendungen

  • Datenbanken: Spalten sollten als utf8mb4 angelegt werden, sonst speichert MySQL keine 4-Byte-Emojis.
  • Formulare und Limits: Wenn du prüfen willst, ob ein Text in ein Zeichenlimit passt, hilft der Zeichenlimit Prüfer.
  • Dateien: Speichere Quelltext immer ohne BOM in UTF-8, um Inkompatibilitäten zu vermeiden.

Weitere Entwickler- und Textwerkzeuge findest du gesammelt unter kotsch.tech/webtools.

Häufige Fragen

Wie viele Zeichen umfasst Unicode?

Unicode definiert über 1,1 Million mögliche Codepunkte, von denen bislang rund 150.000 Zeichen tatsächlich vergeben sind – inklusive historischer Schriften und Emojis.

Ist UTF-8 dasselbe wie Unicode?

Nein. Unicode legt die Codepunkte fest, UTF-8 ist eine von mehreren Methoden, diese Codepunkte als Bytes zu speichern. Es gibt auch UTF-16 und UTF-32.

Warum ist "ß" so problematisch?

Das ß hat eigene Codepunkte für Klein- und seit 2017 auch Großschreibung (ẞ). In manchen Kontexten wird es zu "ss" transliteriert, was die Länge des Textes verändert.

Arthur Hardy Kotsch
Über den Autor
Arthur Hardy Kotsch

Gründer der Softwaremarke Kotsch.Tech, B.Eng. Digital Engineering, aktuell im MBA-Studium Production Management (TU Chemnitz). Entwickelt 34 Apps im Apple App Store sowie Android-Apps, Windows-Programme und Web-Anwendungen.