UTF-8
UTF-8 (Abk. für 8-bit Unicode Transformation Format) ist eine Kodierung für Unicode-Zeichen; dabei besteht der Code aus Byte-Ketten von variabler Länge.UTF-8 ist gegenwärtig als RFC 3629 standardisiert. RFC 2279 ist veraltet (UTF-8, a transformation format of ISO 10646).
Hat ein Byte in UTF-8 einen Wert zwischen 0 und 127, so entspricht es exakt dem ASCII-Zeichen mit demselben Wert. Insofern sind alle Dateien, die ausschließlich ASCII-Zeichen verwenden, in beiden Darstellungen identisch. In allen anderen Fällen sind mehr Bytes erforderlich.
| U0000 - U007F: | 0xxxxxxx | In diesem Bereich entspricht UTF-8 genau dem ASCII-Code: Das erste Bit ist 0, die darauf folgende 7-Bitkombination ist das ASCII-Zeichen. |
| U0080 - U07FF: | 110xxxxx 10xxxxxx | Das erste Byte beginnt mit binär 11, die folgenden Bytes beginnen mit binär 10; die x stehen für die fortlaufende Bitkombination des Unicodezeichens. Die Anzahl der Einsen bis zur ersten 0 im ersten Byte ist die Anzahl der Bytes für das Zeichen. |
| U0800 - UFFFF: | 1110xxxx 10xxxxxx 10xxxxxx | |
| U10000 - UEFFFF: | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
Betrachtet man die Bitfolgen etwas genauer, erkennt man die große Sinnfälligkeit von UTF-8:
- Ist das erste Bit 0, handelt es sich um ein gewöhnliches ASCII-Zeichen, da ASCII eine 7-Bit-Kodierung ist und die ersten 128 Zeichen des Unicode die ASCII-Zeichen sind. Damit sind alle ASCII-Dokumente automatisch aufwärtskompatibel zu UTF-8.
- Ist das erste Bit 1, handelt es sich um ein Mehrbytezeichen, also ein Unicode-Zeichen mit einer Zeichennummer größer als 127.
- Sind die ersten beiden Bits 11, handelt es sich um das Start-Byte eines Mehrbytezeichens, sind sie 10, um ein Folge-Byte.
- Die Anzahl der 1-Bits vor dem ersten 0-Bit bei Start-Bytes entspricht der Anzahl an Bytes des Mehrbytezeichens insgesamt, oder anders interpretiert, die Anzahl der 1-Bits nach dem ersten Bit vor dem ersten 0-Bit der Anzahl an Folgebytes.
Siehe auch: UTF-16, UTF-32
Weblinks






