CESU-8

Das Kompatibilitätscodierungsschema für UTF-16: 8-Bit (CESU-8) ist eine Variante von UTF-8 das ist in beschrieben in Unicode Technischer Bericht Nr. 26.[1] Ein Unicode -Codepunkt aus dem Grundlegende mehrsprachige Ebene (BMP), d. H. Ein Codepunkt im Bereich U+0000 bis U+FFFF, ist genauso codiert wie in UTF-8. Ein Unicode -ergänzendes Zeichen, d. H. Ein Codepunkt im Bereich U+10000 bis U+10ffff, wird zuerst als Ersatzpaar dargestellt, wie in UTF-16und dann wird jeder Ersatzcodepunkt in UTF-8 codiert. Daher benötigt CESU-8 sechs Bytes (3 Bytes pro Ersatz) für jedes Unicode-Zusatzcharakter, während UTF-8 nur vier benötigt. Obwohl nicht im technischen Bericht angegeben, ungepaart Surrogate werden auch als jeweils 3 Bytes codiert, und CESU-8 ist genau das gleiche wie die Anwendung eines älteren UCS-2 zu UTF-8-Konverter zu UTF-16-Daten.

Die Codierung von Unicode-Nicht-BMP-Zeichen funktioniert darauf 11101101 1010yyyy 10xxxxxx 11101101 1011xxxx 10xxxxxx (Yjyy repräsentiert die fünf Top -fünf -Teile des Charakters minus eins). Die Byte-Werte 0xf0-0xf4 werden in CESU-8 nicht angezeigt, da sie die 4-Byte-Codierungen von UTF-8 starten.

CESU-8 ist kein offizieller Teil des Unicode-Standards, da die technischen Berichte von Unicode nur informative Dokumente sind.[2] Es sollte ausschließlich für die interne Verarbeitung und niemals für den externen Datenaustausch verwendet werden.

Unterstützung von CESU-8 in Html Dokumente sind von der verboten W3c[3][4] und Waswg[5] HTML -Standards, wie es a präsentieren würde Cross-Site-Scripting Verletzlichkeit.[6]

Java Modifiziert UTF-8 IS CESU-8 mit einer speziellen Overgon-Codierung des NUL-Zeichens (U+0000) als Zwei-Byte-Sequenz C0 80.[7]

Das Oracle -Datenbank Verwendet CESU-8 für sein "UTF8" -Scharaktersatz. Standard UTF-8 kann mit dem Zeichensatz erhalten werden. "AL32UTF8"(Da Oracle Version 9.0).

Beispiele

Codepunkt U+0045 U+0205 U+10400
Charakter E ȅ
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

Verweise

  1. ^ McGowan, Rick. "Unicode Technischer Bericht Nr. 26-Kompatibilitätscodierungsschema für UTF-16: 8-Bit (CESU-8)". Unicode -Konsortium.
  2. ^ "Über technische Berichte von Unicode - Arten von technischen Berichten von Unicode: UAX, UTS, UTR". Unicode -Konsortium.
  3. ^ "8.2.2.3. Charaktercodierungen". HTML 5.1 Standard. W3c.
  4. ^ "8.2.2.3. Charaktercodierungen". HTML 5 Standard. W3c.
  5. ^ "12.2.3.3 Charaktercodierungen". HTML Living Standard. Waswg.
  6. ^ "<meta> - html". MDN Web Docs. Mozilla.
  7. ^ "Java SE-Dokumentation für die Schnittstelle java.io.datainput, Unterabschnitt auf modifiziertem UTF-8". Oracle Corporation. 2015. Abgerufen 2021-04-30.

Externe Links