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