Von ASCII bis UTF-8 im Detail

UTF-8-Zeichenkodierung

Prinzip

Das Prinzip geht so: Die „normalen Zeichen” werden durch ein Byte dargestellt und die „ausgefalleneren” durch mehrere Bytes.

Die Zeichen des ASCII-Kodes werden exakt wie bei ASCII (und praktisch allen klassischen Kodierungen wie Latin‑1 etc.) mittels eines einzelnen Bytes dargestellt. Die Werte dieser Zeichen entsprechen genau dem ASCII-Standard. Damit kann ein Programm, welches UTF‑8 verarbeitet, auch ganz normale ASCII-Dateien und -Zeichenketten lesen und schreiben. Wir sind also voll ASCII-kompatibel.

Wieviel Byte gelten diesem Zeichen?

Wenn manche Zeichen durch ein Byte, andere durch zwei oder mehr Byte repräsentiert werden, muss ein Programm zur Datenverarbeitung bestimmen können, wann ein Zeichen endet und ein neues anfängt. Dazu benutzt UTF‑8 folgenden Algorithmus:

Entsprechend braucht UTF-8 nur für spezielle Zeichen außerhalb des ASCII-Zeichensatzes mehrere Byte. Ein Text mit 1000 Buchstaben des englischen Alphabets, wird genau 1000 Bytes vereinnahmen. Kommt darin ein einzelnes Zwei-Byte-Zeichen vor (nehmen wir das scharfe S), so wird der Text 1001 Byte lang sein: 999 Zeichen werden durch je ein Byte dargestellt und für das scharfe S werden zwei benötigt.

Zum Vergleich wäre die gleiche Datei bei UTF-16-Kodierung jeweils 2000 Byte groß - davon 1000 bzw. 999 Nullen. Bei UTF‑32 wären es sogar 4000 Byte, wovon wiederum 3000 bzw. 2999 Stellen nur durch Nullen gefüllt wären.

Vorteile

Teil 6 ←→ Teil 8

© Hermann Faß, 2013