Unicode

UTF-8

Das UTF-8 Format ist die am weitesten verbreitete Kodierung für Unicode Zeichen. Ein UTF-8 kodiertes Zeichen benötigt variabel 1 bis 4 Byte. Optimiert ist UTF-8 für die Speicherung von ASCII Zeichen. Im ASCII Bereich mit Werten von 0 bis 127 wird in dieser Kodierung daher nur ein Byte pro Zeichen verwendet, der Wert dieses Bytes ist der gleiche wie bei der ASCII Kodierung. Daher eignet sich die UTF-8 Kodierung besonders für Texte, die hauptsächlich aus ASCII oder ANSI Zeichen bestehen und nur wenige andere Zeichen beinhalten, wie dies zum Beispiel bei Texten der deutschen oder englischen Sprache der Fall ist.

Während die ersten 128 Zeichen (ASCII) ein Byte benötigen, benötigen die nächsten 1920 Zeichen zwei Byte. Diese Zeichen sind Lateinische Buchstaben mit diakritischen Zeichen wie die deutschen Umlaute, oder griechische und kyrillische Buchstaben. Vier Bytes werden nur für selten verwendete Zeichen verwendet, wie zum Beispiel ungewöhnliche Chinesische, Japanische und Koreanische Zeichen.

Zunehmend gewinnt die UTF-8 Kodierung im Internet an Bedeutung, da Institutionen wie die Internet Engineering Task Force von allen neuen Internetprotokollen verlangt, dass UTF-8 unterstützt wird und anstelle der HTML-Sonderzeichen auf Internetseiten immer öfter eine UTF-8 Kodierung der Zeichen verwendet wird.

Ein Nachteil von UTF-8 ist die größere Dateigröße wenn viele der nicht bevorzugten Zeichen, das heißt, die Zeichen, die 3 oder 4 Bytes verwenden, verwendet werden. In solchen Fällen wären andere Kodierungen die platzsparendere Wahl.

Die Byte Order Mark (BOM) von UTF-8 besteht aus der Bytesequenz EF BB BF, die als die Zeichen  erscheinen können, insofern das entsprechende Programm nicht mit UTF-8 umgehen kann. Das Problem der Byte Reihenfolge stellt sich zwar nicht bei einer UTF-8 Kodierung, dennoch ist es eindeutiger eine BOM zu verwenden, damit darauf hingedeutet wird, um welche Kodierung es sich handelt. Dennoch ist eine sichere Unterscheidung nicht zu 100 Prozent eindeutig, da natürlich auch in ANSI Texten die Zeichenkette  erlaubt ist und zumindest theoretisch am Anfang einer Datei vorkommen könnte.