Zum Inhalt springen
YellowBlue
IT-Grundlagen4 Min. Lesezeit

Zeichensatzkodierung: ASCII, Unicode und UTF-8

Kurzantwort

Ein Zeichensatz ordnet jedem Zeichen eine Zahl zu, damit der Computer Text speichern kann. ASCII deckt mit 7 Bit nur 128 Zeichen ab – ohne Umlaute. Unicode vergibt für praktisch jedes Zeichen der Welt eine Nummer, UTF-8 ist die verbreitetste Art, diese Nummern zu speichern. Falsch dargestellte Umlaute entstehen fast immer, wenn Speicher- und Lesekodierung nicht zusammenpassen.

Teil des Lernpfads Hardware und Betriebssysteme · Schritt 2 von 13

Zuletzt aktualisiert am

„Grüße" wird zu „Grüße" – dieses Ärgernis kennt jeder, der schon mal eine CSV-Datei geöffnet oder Daten zwischen Systemen übertragen hat. Dahinter steckt kein Zufall, sondern ein Missverständnis über Zeichensätze. Wer es einmal versteht, behebt solche Fehler in Minuten.

Warum braucht ein Computer einen Zeichensatz?

Ein Computer speichert nur Zahlen aus Nullen und Einsen – Buchstaben kennt er nicht. Also braucht es eine vereinbarte Tabelle, die jedem Zeichen eine Nummer zuordnet.

ASCII: der Urahn

ASCII nutzt 7 Bit und kann damit 128 Zeichen darstellen: Groß- und Kleinbuchstaben von A bis Z, Ziffern, Satzzeichen und Steuerzeichen. Beispiel: Das große A ist die Zahl 65.

Das Problem: Für das englische Alphabet reicht das, für Umlaute, ß oder Akzente nicht. Deshalb entstanden viele nationale Erweiterungen auf 8 Bit (etwa ISO 8859-1 für Westeuropa) – und damit ein neues Problem: Dieselbe Zahl bedeutete je nach Tabelle ein anderes Zeichen.

Unicode: eine Nummer für jedes Zeichen

Unicode löst das grundsätzlich: Es vergibt für praktisch jedes Zeichen der Welt eine eindeutige Nummer, den sogenannten Codepoint – lateinische Buchstaben, Kyrillisch, Chinesisch, Emojis. Das ä hat weltweit dieselbe Unicode-Nummer.

UTF-8: die verbreitetste Kodierung

UTF-8 speichert Unicode-Nummern mit variabler Länge:

ZeichenSpeicherbedarf in UTF-8
A–Z, 0–9 (ASCII-Bereich)1 Byte
Umlaute, é, ñ2 Byte
Chinesische Zeichen3 Byte
Emojis4 Byte

Der geniale Kniff: Für die alten ASCII-Zeichen braucht UTF-8 genau ein Byte mit demselben Wert wie in ASCII. Damit ist UTF-8 abwärtskompatibel – eine reine ASCII-Datei ist automatisch auch gültiges UTF-8. Deshalb hat sich UTF-8 im Web und in fast allen modernen Systemen durchgesetzt.

Woher kommt der Buchstabensalat?

Selbstkontrolle

Selbstkontrolle

Was ist der Unterschied zwischen Unicode und UTF-8?

Häufige Fragen

Was ist eine Zeichensatzkodierung?

Ein Zeichensatz ordnet jedem Zeichen eine Nummer zu, zum Beispiel Unicode. Die Kodierung legt fest, wie diese Nummer als Bytes gespeichert wird, zum Beispiel UTF-8. Mit Zeichensatzkodierung (auch Zeichenkodierung) meint man das Zusammenspiel von beidem: Damit Text richtig angezeigt wird, müssen Schreiber und Leser dieselbe Kodierung verwenden.

Warum reicht ASCII nicht aus?

ASCII deckt mit 7 Bit nur 128 Zeichen ab, im Wesentlichen das englische Alphabet mit Ziffern und Satzzeichen. Umlaute, ß, Akzente oder gar nichtlateinische Schriften sind darin nicht vorgesehen. Für deutschsprachige Texte und erst recht für internationale Anwendungen ist das viel zu wenig.

Wie viele Bytes braucht ein Zeichen in UTF-8?

Zwischen einem und vier, je nach Zeichen. Die klassischen ASCII-Zeichen belegen ein Byte, deutsche Umlaute zwei, viele asiatische Schriftzeichen drei und Emojis vier. Deshalb ist die Zeichenanzahl eines Textes nicht dasselbe wie seine Byte-Länge – ein häufiger Stolperstein beim Programmieren.

Was bedeutet abwärtskompatibel zu ASCII?

Es bedeutet, dass UTF-8 die 128 ASCII-Zeichen mit exakt demselben Byte-Wert speichert wie ASCII selbst. Eine Datei, die nur ASCII-Zeichen enthält, ist damit gleichzeitig eine gültige UTF-8-Datei. Alte Systeme und Werkzeuge können solche Dateien weiterhin problemlos lesen.

Wie behebe ich falsch dargestellte Umlaute?

Nicht durch Ersetzen der Zeichen, sondern indem du die Kodierung angleichst. Prüfe, in welcher Kodierung die Datei tatsächlich gespeichert ist, und stelle das lesende Programm darauf ein. Als dauerhafte Lösung sollten Editor, Datenbank, Webseite und Schnittstellen einheitlich auf UTF-8 stehen.

Weiterlesen: JSON und XML: Datenformate im Vergleich · Variablen und Datentypen einfach erklärt

Das Wichtigste in Kürze

  • Ein Zeichensatz ordnet jedem Zeichen eine Zahl zu.
  • ASCII: 7 Bit, nur 128 Zeichen – ohne Umlaute.
  • Unicode: eine eindeutige Nummer (Codepoint) für praktisch jedes Zeichen der Welt.
  • UTF-8: speichert diese Nummern mit 1 bis 4 Byte, abwärtskompatibel zu ASCII.
  • Buchstabensalat entsteht, wenn Speicher- und Lesekodierung nicht zusammenpassen.

Verwandte Beiträge

IT-Grundlagen4 Min. Lesezeit

JSON und XML: Datenformate im Vergleich

Wie JSON und XML Daten strukturieren, worin sie sich unterscheiden und wann welches Format die bessere Wahl ist – mit Beispielen zum direkten Vergleich.

IT-Grundlagen5 Min. Lesezeit

Lastenheft und Pflichtenheft: der Unterschied

Lastenheft und Pflichtenheft im Vergleich: Wer sie schreibt, was hineingehört, mit Beispiel für dieselbe Anforderung und warum die Prüfung danach fragt.

IT-Grundlagen4 Min. Lesezeit

Was ist eine API? Einfach erklärt

Was eine API ist, wie Programme über Schnittstellen Daten austauschen, was eine REST-API ausmacht und warum APIs das Rückgrat moderner Software sind.