CESU-8
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. Das Verfahren ist ähnlich wie das modifizierte UTF-8 von Java, allerdings wird das Zeichen NUL (U+0000) nicht speziell kodiert. Wie beim modifizierten UTF-8 wird CESU-8 in einzelne UTF-16-Wörter dekodiert.
CESU-8-kodierter Text entsteht, wenn ein UCS-2→UTF8-Umwandler (häufig aus der Zeit, in der Unicode nur ein 16-Bit-Zeichensatz war) fehlerhafterweise für die Umwandlung von UTF-16 verwendet wird. Eingeschränkt auf den Bereich der Basic Multilingual Plane (Zeichen bis Nummer 65.535) sind UTF-8 und CESU-8 identisch.
CESU-8 wird von der Oracle-Datenbank-Software verwendet. Der Oracle UTF8-Zeichensatz – mit einem falsch gewählten Namen – der seit Version 8.0 der Datenbank verfügbar ist, entspricht der CESU-8-Kodierung. Der AL32UTF8-Zeichensatz, eingeführt in Version 9.0, entspricht der UTF-8-Kodierung.
[Bearbeiten] Beispiel
| Kodierung | Unicode code point | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| U+0045 | U+0205 | U+10400 | |||||||||||||||||
| UTF-8 | 45 | C8 | 85 | F0 | 90 | 90 | 80 | ||||||||||||
| UTF-16 | 0045 | 0205 | D801 | DC00 | |||||||||||||||
| CESU-8 | 45 | C8 | 85 | ED | A0 | 81 | ED | B0 | 80 | ||||||||||