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

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.

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:

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

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.