8-Bit Unicode Transformation Format
Das 8-Bit Unicode Transformation Format / UTF-8 ist die am weitesten verbreitete Kodierung für Unicode-Zeichen. Dabei wird jedem Unicode-Zeichen eine besonders kodierte Bytekette von variabler Länge zugeordnet. UTF-8 unterstützt bis zu vier Byte, auf die sich wie bei allen UTF-Formaten alle Unicode-Zeichen abbilden lassen.
UTF-8 wurde als Alternative zu UTF-16 entwickelt und stellt jedes Zeichen durch 8 Bit bzw. ein Byte dar. Dabei werden die US-ASCII-Zeichen (7 Bit) wie bisher durch ein Byte dargestellt, deren oberstes Bit 0 ist. Alle anderen Unicode-Zeichen werden durch zwei bis vier Byte lange Byte-Ketten dargestellt. Damit gibt es keinen unmittelbaren Zusammenhang mehr zwischen der Anzahl Bytes und der Anzahl Zeichen einer Datei.
UTF-8 hat eine zentrale Bedeutung als globale Zeichenkodierung im Internet und ist inzwischen die meist genutzte Unicode-Anwendung. Die Internet Engineering Task Force verlangt von allen neuen Internetkommunikationsprotokollen, dass die Zeichenkodierung deklariert wird und dass UTF-8 eine der unterstützten Kodierungen ist. Das Internet Mail Consortium / IMC empfiehlt, dass alle E-Mail-Programme UTF-8 darstellen und senden können.
Auch bei dem in Webbrowsern verwendeten HTML setzt sich UTF-8 zur Darstellung von länder- und sprachspezifischen Zeichen zunehmend durch und ersetzt die vorher benutzten HTML-Sonderzeichen.
Verwendung
Ausgabe der UTF-8-Kodierung des Zeichens "α" (Alpha aus dem griechischen Alphabet). Im Beispiel wird für das Zeichen "α" die (hexadezimale) UTF-8-Kodierung "ceb1" (also genau umgekehrt wie von "echo" ausgegeben; dezimal: 316 261, hier ist die Reihenfolge wie angezeigt). Danach folgt noch ein Zeilenumbruch ("0a") und nichts weiter ("00"). Zu beachten ist natürlich, dass das verwendete Terminal auch tatsächlich auf die Anzeige von UTF-8 eingestellt ist! Der entsprechende Code Point für die Darstellung als Zeichen in HTML lautet "03b1".
Zeichen | hexadezimal | dezimal |
---|---|---|
α | ceb1 | 316 261 |
[Zeilenumbruch] | 0a | \n |
[nichts] | 00 | \0 |
$ echo α | od -xc 0000000 b1ce 000a 316 261 \n \0 0000003
Dieselbe Ausgabe, aber ohne von "echo" an die Ausgabe angehängten Zeilenumbruch.
$ echo -n α | od -xc 0000000 b1ce 000a 316 261 0000002
Weblinks
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|
Wikipedia | ger | UTF-8wbm | Enzyklopädischer Artikel |