UTF-16

Das ist der Eintrag dazu aus unserem IT-Kommunikationslexikon:

Unicode Transformation Format-16
UCS Transformation Format


Als UTF-16 wird ein Codierungsformat für Unicode bezeichnet, das urspünglich immer zwei Byte zur Darstellung eines Unicode-Zeichens verwendete. Sie ist damit gut für die Verarbeitung innerhalb von Programme geeignet, da sich Zeichen gleicher Breite besser handhaben lassen und zwei Byte pro Zeichen noch eine vertretbaren Speicherverbrauch ergeben. Daher wird sie zum Beispiel von Java als Standardformat für die Zeichendarstellung verwendet. UTF-16 war die erste und am Anfang einzige Unicodecodierung, die entwickelt wurde. In vielen älteren Publikationen ist die Bezeichnung Unicode daher gleichbedeutend mit UTF-16 oder UCS-2.

Allerdings reichte auch der Wertevorrate von UTF-16 bald nicht mehr aus. Das hatte mehrere Gründe. Zum einen wollte man immer mehr Zeichen aus toten Sprachen darstellen können, zum anderen machte die Volksrepublik China mit dem Standard GB18030 eine alternative Codezuweisung für chinesische Schriftzeichen notwendig, die sich nicht auch noch unterbringen lies. Daher mussten größere Formate wie UTF-32 entwicklet werden. Außerdem kam mit UTF-8 ein Format hinzu, das eine variable Anzahl von Darstellungsbytes benutzt.

Um die ganze Sache noch komplizierter zu machen, wurde dann in Unicode Version 4.0 für UTF-16 auch noch die Möglichkeit geschaffen, Unicode-Zeichen im Bereich U+10000 bis U+10FFFF darzustellen. Für diese Zeichen werden zwei Zweibytewörter benutzt, die wie folgt gebildet werden: Von der Nummer des Zeichens wird 65536 (10000hex) abgezogen, da so mehr Zeichen codiert werden können. Danach wird das Ergebnis auf zwei Blöcke zu je 10 Bit aufgeteilt. Dem ersten Block wird die Bitfolge 110110 und dem zweiten Block wird die Bitfolge 110111 vorangestellt. Das erste der so entstandenen Zweibytewörter bezeichnet man als High-Surrogate, das zweite als Low-Surrogate. Das High-Surrogate enthält die höherwertigen, das Low-Surrogate die niederwertigen Bits des Unicode-Zeichens. Der Codebereich von U+D800 bis U+DBFF (High-Surrogates) und der Bereich von U+DC00 bis U+DFFF (Low-Surrogates) ist für diese UTF-16-Ersatzzeichen reserviert und enthält keine eigenständigen Zeichen.

Da diese Codierungserweiterung für alle lebenden Sprachen und Sonderzeichen nicht benötigt wird, sind die ISO mit UCS-2 und auch die meisten Implementierungen des Standards beim der festen 16-Bit-Darstellung geblieben. Dadurch sind aber zwei Varianten für die Umwandlung von UTF-16 nach UTF-8 entstanden. Die korrekte Umwandlung nach Unicode 4.0 sieht vor, dass die mit Hilfe der Ersatzzeichen codierten Werte erst in einen Unicodewert zurückverwandelt und dann in UTF-8 umgewandelt werden. Da aber prkatisch alle älteren UTF-16-Implementierungen von festen Zweibytezeichen ausgehen, wandeln sie die Ersatzwerte einzeln um. Diese Variante hat man nachträglich als CESU-8 standardisiert.

Aktuelle Beiträge

Kabelhalter in schick Lars Nitsch Sa., 18.05.2024 - 07:54
Auf den Schreibtischen von IT-Profis müssen zahlreiche Kabel gebändigt werden. Wenn Sie sich an bunten Velcro-Bändern oder simplen Plastikringen sattgesehen haben, sollten Sie zu mehr Luxus greifen und den "NOOE Kabel-Organisator" erwerben. Der schlanke, aber robuste Kabelhalter ist aus Walnussholz gefertigt und hält die Strippen über Haken und ein Gummiband fest am Platz.
Gefahr im Foxit PDF-Reader Daniel Richey Fr., 17.05.2024 - 11:53
Angreifer haben es auf Nutzer des Foxit Readers abgesehen und nutzen gezielt Schwachstellen in der Gestaltung der Warnmeldungen aus. Dieser Exploit veranlasse Nutzer, schädliche Befehle auszuführen. Hierfür rufe er Sicherheitswarnungen hervor, die standardmäßig gefährliche Optionen anbieten. Durch zweimaliges Bestätigen dieser Optionen würde eine schädliche Nutzlast von einem Remote-Server heruntergeladen und ausgeführt.
Unter TrueNAS Scale Cluster Volume erstellen Lars Nitsch Fr., 17.05.2024 - 07:40
Wer zur Bereitstellung skalierbaren Speichers die Plattform TrueNAS Scale nutzt, hat mit einem Cluster Volume die Möglichkeit, Daten über mehrere Systeme hinweg zu teilen. Somit haben die Nutzer von jedem System aus Lese- und Schreibrechte auf alle ausgewählten Disks. Beim Erzeugen eines Cluster Volume unter TrueNAS Scale mittels des Webinterface von TrueCommand gibt es jedoch einige Punkte zu beachten.