8-Bit Unicode Transformation Format

Aus Mikiwiki
Wechseln zu: Navigation, Suche

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 Byte 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

Anzeige von UTF-8 Zeichen in Codepoint hex-Darstellung.

$ echo 'UTF-8 ist schön' | preconv -r
UTF-8 ist sch\[u00F6]n

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country DE.gif Wikipedia ger UTF-8wbm Enzyklopädischer Artikel
country DE.gif ger UTF-8-Codetabelle mit Unicode-Zeichenwbm Anmerkung: der Unicode Codepoint ist gelb hinterlegt, der UTF-8-Code ist rot hinterlegt.