Das Unicode-Konsortium hat mittlerweile über eine Million verschiedener Zeichen in den Unicode-Zeichensatz aufgenommen. Ein wichtiger Aspekt der Standardisierungsarbeit des Konsortiums besteht darin, dass alle diese Zeichen auch im Bitformat codiert werden können, um diese zuverlässig und eindeutig speichern und einsetzen zu können. Anders als die wohlbekannte, universelle Codierung der ASCII-Zeichen gibt es mehrere offizielle, und auch ein paar weniger offizielle aber selten genutzte, Codierungsmechanismen. Diese werden unter dem Begriff UTF - Unicode Transformation Format zusammengefasst.
Die offiziellen UTF-Codierungen sind UTF-8, UTF-16 und UTF-32. Die Zahl steht dabei für die Anzahl Bits, die ein Zeichen mindestens benötigt, um gespeichert zu werden. Alle Codierungen können alle Unicode-Zeichen abdecken und verlustfrei ineinander umgewandelt werden.
UTF-32-Zeichen sind stets 32 Bits (4 Bytes) lang. Man unterscheidet weiter zwischen UTF-32BE ("Big-Endian") und UTF-32LE ("Little-Endian"), je nachdem ob die Bytes in absteigender oder aufsteigender Signifikanz angeordnet sind. Der Vorteil von UTF-32 ist die konstante Bytelänge der Zeichen, der Nachteil der erhöhte Speicherbedarf.
UTF-16 ist historisch der Vorgänger von UTF-32. Die Zeichen sind entweder 16 Bit (2 Bytes) oder 32 Bits (4 Bytes) lang. Viele Zeichensätze können mit den 2-Byte langen Codierungen abgedeckt werden und somit ist UTF-16 für bestimmte eingeschränkte Zeichenbereiche die effizienteste Variante, Zeichen abzuspeichern, sofern ASCII nicht mehr ausreicht.
UTF-8-Zeichen sind von variabler Länge und können 1 bis 4 Byte lang werden. Die ASCII-Zeichen werden dabei jeweils auf nur ein Byte codiert und damit ist UTF-8 für Sprachen, die das lateinische Alphabet verwenden sehr effizient. Bei anderen Zeichen kann es jedoch sein, dass in UTF-8 mehr Bytes benötigt werden als mit UTF-16.
Beispiele:
Quelle: https://unicode-table.com/
Lateinischer Kleinbuchstabe s
Euro-Zeichen (€)
Violinschlüssel