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). 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 - praktisch alle Zeichen aller Sprachen dieser Welt sowie eine Menge graphischer Symbole.
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