www.wikidata.de-de.nina.az
CESU 8 kurz fur 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 zunachst in UTF 16 ausgedruckt dann wird das Ergebnis in UTF 8 rekodiert als ware es UCS 2 Inhaltsverzeichnis 1 Kodierung 2 Verwendung 3 Beispiel 4 Gleiches Beispiel mit Binardarstellung 5 WeblinksKodierung BearbeitenCESU 8 kodierter Text entsteht wenn bei der Kodierung nach UTF 8 eine etwaige UTF 16 Kodierung der Ausgangsdaten nicht berucksichtigt 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 ausserhalb der BMP werden durch die UTF 16 Kodierung durch jeweils zwei 16 Bit Werte aus dem fur diese Zwecke reservierten Bereich von D800hex bis DFFFhex reprasentiert Werden diese beiden Werte nun einzeln in UTF 8 umgewandelt entstehen daraus jeweils 3 Byte Sequenzen aus dem Bereich ED A0 xx ED BF xx welche in normalem UTF 8 nicht vorkommen konnen Ein korrekter UTF 8 Kodierer muss dagegen zuerst die UTF 16 Kodierung der Eingangsdaten erkennen und dekodieren wobei Code Werte gt 65535 auftreten konnen und anschliessend erst die UTF 8 Kodierung durchfuhren wobei Werte gt 65535 in 4 Byte Sequenzen kodiert werden die mit F0hex bis F4hex beginnen Verwendung BearbeitenDa diese eigentlich falsche UTF 8 Kodierung eine gewisse Verbreitung gefunden hat wurde sie nachtraglich durch das Unicode Consortium genormt allerdings unter dem neuen Namen CESU 8 CESU 8 wird ausdrucklich nicht als Datenaustauschformat empfohlen sondern nur als internes Format wenn eine Kompatibilitat zu UTF 16 erforderlich ist CESU 8 wird z B von der Oracle Datenbank Software verwendet Mit Version 8 wurde ein UTF8 genannter Zeichensatz eingefuhrt der aber in Wirklichkeit der CESU 8 Kodierung entspricht Mit Version 9 0 wurde ein korrekter UTF 8 Zeichenatz eingefuhrt der allerdings den Namen AL32UTF8 erhielt um die Kompatibilitat zu vorhandenen alteren Datenbanken zu bewahren Beispiel BearbeitenKodierung Unicode code pointU 0045 U 0205 U 10400UTF 8 45 C8 85 F0 90 90 80UTF 16 0045 0205 D801 DC00CESU 8 45 C8 85 ED A0 81 ED B0 80Gleiches Beispiel mit Binardarstellung BearbeitenKodierung Hexadezimal Binar Unicode code pointUTF 8 45 0100 0101 U 0045 E Lateinischer Grossbuchstabe E UTF 16 00 45 0000 0000 0100 0101CESU 8 45 0100 0101UTF 8 C8 85 110 0 1000 10 00 0101 U 0205 ȅ Lateinischer Kleinbuchstabe E mit Doppelgravis UTF 16 02 05 0000 0010 0000 0101CESU 8 C8 85 110 0 1000 10 00 0101UTF 8 F0 90 90 80 1111 0 000 10 01 0000 10 01 0000 10 00 0000 U 10400 𐐀 Deseret Grossbuchstabe langes I UTF 16 High Surrogate D8 01 1101 1000 0000 0001Low Surrogate DC 00 1101 1100 0000 0000CESU 8 High ED A0 81 1110 1101 10 10 0000 10 00 0001Low ED B0 80 1110 1101 10 11 0000 10 00 0000Legende0100 0101 etc Datenbits10000hex Grosse der Ebene 0 Basic Multilingual Plane wird fur die UTF 16 Codierung abgezogen 110110 UTF 16 High Surrogate Kodierungsbits110111 UTF 16 Low Surrogate Kodierungsbits110 1110 11110 10 UTF 8 KodierungsbitsWeblinks BearbeitenUnicode Technical Report 26 Abgerufen von https de wikipedia org w index php title CESU 8 amp oldid 221540538