Von ASCII bis UTF-8 im Detail

Zeichensatz & Zeichenkodierung

Zeichen

Texte bestehen aus Zeichen. Ein Zeichen kann ein Buchstabe, eine Zahl, ein Satzzeichen oder ein sonstiges Sonderzeichen sein.

Zeichensatz

Ein Zeichensatz, englisch Character Set, ist einfach nur eine Liste von Zeichen. Man könnte z.B. einen Zeichensatz mit Namen „ALPHABET KLEIN” erfinden, in dem nur die Kleinbuchstaben a bis z enthalten sind.

Es gibt etliche standardisierte Zeichensätze. Ein sehr beschränkter Zeichensatz liegt dem ASCII-Kodierungsschema zugrunde, der nur 128 Zeichen (davon auch noch 33 nicht-druckbare Steuerzeichen) umfasst. Er deckt gerade einmal das englische Alphabet, die Ziffern sowie ein paar Satz- und Sonderzeichen ab. Im Gegensatz dazu umfasst Unicode über 100.000 Zeichen. Damit sind praktisch alle Zeichen aller Sprachen dieser Welt sowie eine Menge graphischer Symbole erfasst und das System lässt noch Platz für künftige Zeichen.

Computersysteme unterstützen heute meist sehr umfangreiche Zeichensätze, d.h. erlauben die Ein- und Ausgabe vieler verschiedener Zeichen.

Es ist dem Zeichensatz allerdings nicht eigen, wie die einzelnen Zeichen im Computer verarbeitet werden. Dafür ist die Zeichenkodierung da.

Zeichenkodierung

Ein Computer arbeitet nicht mit Zeichen, sondern mit Zahlen. Genau genommen arbeitet er mit Bitfolgen, aber das braucht uns jetzt nicht zu interessieren.

Wenn der Computer ein Zeichen verarbeiten soll, dann muss das Zeichen in eine oder mehrere Zahlen (d.h. in eine Bitfolge) umgewandelt werden. Dazu muss man definieren, welche Zahl(en) - für den Computer ist das eine Bitfolge - für welches Zeichen steht.

Eine Zeichenkodierung, englisch Character Encoding, ist eine Liste, die jedem einzelnen Zeichen eines Zeichensatzes eine Zahl (in manchen Kodierungen auch kurze Zahlenfolgen) zuordnet.

Ein einfaches Beispiel für eine Zeichenkodierung ist ASCII. Am Beispiel:
Bei einer Aktion wie „Buchstaben A anzeigen” führt der Computer eigentlich die Anweisung „das der Zahl 65 entsprechende Zeichen ausgeben” aus. In ASCII (und einigen anderen Kodierungen) ist der Buchstabe A als eine Bitfolge kodiert, die dem Zahlenwert 65 entspricht.

Zeichenkodierungen, die den gesamten Unicode-Zeichensatz umfassen, sind etwas komplexer und heißen z.B. UTF‑32LE oder - der eleganteste von allen - UTF‑8.

→ Teil 2

© Hermann Faß, 2013