Top-Fragen
Zeitleiste
Chat
Kontext

CESU-8

Kodierung von Unicode, sehr ähnlich zu UTF-8 Aus Wikipedia, der freien Enzyklopädie

Remove ads

CESU-8 (kurz für Compatibility Encoding Scheme for UTF-16: 8-Bit) ist eine Variante von UTF-8, die im Unicode Technical Report #26 beschrieben wird. Der Codepoint wird zunächst in UTF-16 ausgedrückt, dann wird das Ergebnis in UTF-8 rekodiert, als wäre es UCS-2.

Kodierung

CESU-8-kodierter Text entsteht, wenn bei der Kodierung nach UTF-8 eine etwaige UTF-16-Kodierung der Ausgangsdaten nicht berücksichtigt wird, sei es aus Unkenntnis oder weil der Programmcode noch aus der Zeit stammt, in der Unicode nur ein 16-Bit-Zeichensatz war.

Bei Zeichen aus dem Bereich der Basic Multilingual Plane (Zeichen bis Nummer 65.535) sind UTF-8 und CESU-8 identisch. Zeichen außerhalb der BMP werden durch die UTF-16-Kodierung durch jeweils zwei 16-Bit-Werte (aus dem für diese Zwecke reservierten Bereich von D800hex bis DFFFhex) repräsentiert. Werden diese beiden Werte nun einzeln in UTF-8 umgewandelt, entstehen daraus jeweils 3-Byte-Sequenzen aus dem Bereich ED A0 xxED BF xx, welche in normalem UTF-8 nicht vorkommen können. Ein korrekter UTF-8-Kodierer muss dagegen zuerst die UTF-16-Kodierung der Eingangsdaten erkennen und dekodieren (wobei Code-Werte >65535 auftreten können) und anschließend erst die UTF-8-Kodierung durchführen, wobei Werte >65535 in 4-Byte-Sequenzen kodiert werden, die mit F0hex bis F4hex beginnen.

Remove ads

Verwendung

Da diese eigentlich „falsche UTF-8-Kodierung“ eine gewisse Verbreitung gefunden hat, wurde sie nachträglich durch das Unicode-Consortium genormt, allerdings unter dem neuen Namen CESU-8. CESU-8 wird ausdrücklich nicht als Datenaustauschformat empfohlen, sondern nur als internes Format, wenn eine Kompatibilität zu UTF-16 erforderlich ist.

CESU-8 wird z. B. von der Oracle-Datenbank-Software verwendet: Mit Version 8 wurde ein "UTF8" genannter Zeichensatz eingeführt, der aber in Wirklichkeit der CESU-8-Kodierung entspricht. Mit Version 9.0 wurde ein korrekter UTF-8-Zeichenatz eingeführt, der allerdings den Namen "AL32UTF8" erhielt, um die Kompatibilität zu vorhandenen, älteren Datenbanken zu bewahren.

Remove ads

Beispiel

Weitere Informationen Kodierung, Unicode code point ...

Gleiches Beispiel mit Binärdarstellung

Weitere Informationen Kodierung, Hexadezimal ...
Weitere Informationen Legende ...
Remove ads
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads