ASCII und Zeichensätze: Wie Text im Computer entsteht
Kurz: Computer speichern nur Zahlen; ein Zeichensatz legt fest, welche Zahl welchem Buchstaben entspricht. ASCII war der Anfang, Unicode ist der heutige Standard.
Genauer: Wenn du ein „A“ tippst, speichert der Computer eine Zahl. Damit alle Programme dieselbe Zahl als „A“ lesen, braucht es eine Zuordnungstabelle: den Zeichensatz. Verschiedene Zeichensätze erklären, warum manchmal Umlaute als Kauderwelsch („ä“) erscheinen.
Im Detail
ASCII
ASCII (American Standard Code for Information Interchange, 1963) nutzt 7 Bit, also 128 Zeichen: Großbuchstaben A–Z (65–90), Kleinbuchstaben a–z (97–122), Ziffern 0–9 (48–57), Satzzeichen und Steuerzeichen wie Zeilenumbruch (10) und Tabulator (9). Umlaute und Sonderzeichen fehlen. Auswendig: A = 65, a = 97, Differenz 32 (ein Bit).
Erweiterungen und Chaos
Das achte Bit erlaubte 128 weitere Zeichen. Jede Region füllte sie anders: ISO-8859-1 (Latin-1) für Westeuropa mit Umlauten, Windows-1252, ISO-8859-5 (Kyrillisch) usw. Dieselbe Zahl bedeutete je nach Tabelle ein anderes Zeichen, und Texte aus anderen Sprachen waren nicht mischbar.
Unicode und UTF-8
Unicode gibt jedem Zeichen der Welt (über 150.000, inklusive Emoji) eine eindeutige Nummer, den Codepunkt (zum Beispiel U+00E4 für „ä“). UTF-8 speichert diese Codepunkte mit 1 bis 4 Byte: ASCII-Zeichen bleiben 1 Byte (kompatibel zu ASCII), Umlaute brauchen 2, viele Sonderzeichen 3, Emoji 4. UTF-8 ist heute der Standard im Web (über 98 % aller Seiten) und in den meisten Programmiersprachen.
Praxis und Fehlerbilder
- Dateien und Seiten immer als UTF-8 speichern, im HTML
<meta charset="utf-8">setzen. - „ä“ statt „ä“ entsteht, wenn UTF-8-Text als Latin-1 gelesen wird (Mojibake).
- Die Länge eines Textes in Zeichen und in Bytes sind verschiedene Dinge.
- Mit
ord('A')in Python erhält man den Codepunkt (65), mitchr(65)zurück das Zeichen. - Zeilenumbrüche: Unix
\n, Windows\r\n.
Siehe auch: UTF-8 und Zeichenkodierung, Unicode, Binär, dezimal, hexadezimal, char (Zeichen)