Unicode Transformation Format (UTF)

Anzeige von Unicode im Internet

Das Prinzip:

Es werden nicht für jedes Zeichen genau 2 oder 4 Byte verbraucht, sondern 1 Byte, wenn es ein ASCII-Zeichen ist, und mehr Bytes für sonstige Zeichen:

Bytes | Bits | Darstellung                          Zeichenvorrat   | HEX
----------------------------------------------------------------------------
    1 |    7 | 0.......                             27  =       128 | 80
    2 |   11 | 110..... 10......                    211 =     2.048 | 800
    3 |   16 | 1110.... 10...... 10......           216 =    65.536 | 10000
    4 |   21 | 11110... 10...... 10...... 10......  221 = 2.097.152 | 200000

Die Bytes sind für die Software leicht zu unterscheiden: Wenn ein Byte mit 0 anfängt, so handelt es sich um ein 7-Bit-ASCII-Zeichen, wenn es mit 11 anfängt, um ein Führungsbyte, wobei die Anzahl der Einsen vor der ersten Null anzeigt, aus wie vielen Bytes das Zeichen besteht. Die folgenden Bytes beginnen jeweils mit 10. Im obigen Schema sind die für die eigentliche Zeichenkodierung verfügbaren Bits mit Punkten repräsentiert.

Der somit durch zwei Bytes darstellbare Zeichenvorrat umfasst u.a. die nicht in ASCII enthaltenen Zeichen der wichtigsten lateinischen Alphabete, IPA-Zusatzzeichen, diakritische Zeichen, Griechisch, Koptisch, Kyrillisch (mit Zusatzzeichen), Armenisch, Hebräisch und Arabisch, Syrisch und Thaana.

Drei Bytes werden beispielsweise für chinesische Zeichen benötigt.

Beispiel:

Das chinesische Zeichen 文 (∼ Schriftkultur) hat die Unicode-Nummer 25.991 (Hex: 6587).

Wenn man eine UTF-8-kodierte Webseite mit einem 8-Bit-Editor unter einer westeuropäischen Windows-Version betrachtet, so erscheint dieses Zeichen als die Zeichenfolge æ – ‡.

Im Standardzeichensatz der deutschen Version von MS-Windows (Win 1252/ANSI) entsprechen diesen Zeichen die Codenummern 230, 150 und 135 (dezimal). Im Dualsystem sehen diese drei Zahlen so aus: 11100110, 10010110, 10000111. Löscht man nun die Führungsbits, so ergibt sich: 11100110, 10010110, 10000111 => 0110010110000111. Diese Zahl lautet im Dezimalsystem 25.991 und im Hexadezimalsystem 6587.