CESU-8

Схема кодировки для Unicode

Схема кодирования совместимости для UTF-16: 8-бит ( CESU-8 ) — это вариант UTF-8 , описанный в Техническом отчете Unicode № 26. [1] Кодовая точка Unicode из Базовой многоязыковой плоскости (BMP), т. е. кодовая точка в диапазоне от U+0000 до U+FFFF, кодируется так же, как в UTF-8. Дополнительный символ Unicode, т. е. кодовая точка в диапазоне от U+10000 до U+10FFFF, сначала представляется в виде суррогатной пары, как в UTF-16 , а затем каждая суррогатная кодовая точка кодируется в UTF-8. Таким образом, CESU-8 требует шесть байтов (3 байта на суррогат) для каждого дополнительного символа Unicode, тогда как UTF-8 требует только четыре. Хотя это и не указано в техническом отчете, непарные суррогаты также кодируются как 3 байта каждый, а CESU-8 — это то же самое, что и применение старого преобразователя UCS-2 в UTF-8 к данным UTF-16.

Кодировка символов Unicode, отличных от BMP, выглядит так 11101101 1010yyyy 10xxxxxx 11101101 1011xxxx 10xxxxxx(yyyy представляет собой верхние пять бит символа минус один). Байтовые значения 0xF0—0xF4 не будут отображаться в CESU-8, поскольку они начинают 4-байтовые кодировки, используемые UTF-8.

CESU-8 не является официальной частью стандарта Unicode, поскольку технические отчеты Unicode являются исключительно информационными документами. [2] Он должен использоваться исключительно для внутренней обработки и никогда для внешнего обмена данными.

Поддержка CESU-8 в HTML- документах запрещена стандартами HTML W3C [3] [4] и WHATWG [5] , поскольку это приведет к уязвимости межсайтового скриптинга . [6]

Модифицированный UTF-8 в Java — это CESU-8 со специальным сверхдлинным кодированием символа NUL (U+0000) в виде двухбайтовой последовательности C0 80. [7]

База данных Oracle использует CESU-8 для своего набора символов "UTF8". Стандартный UTF-8 может быть получен с помощью набора символов " AL32UTF8 " (начиная с версии Oracle 9.0).

Примеры

Кодовая точкаU+0045У+0205U+10400
ХарактерЭȅ𐐀
UTF-845С885Ф0909080
UTF-1600450205Д801DC00
CESU-845С885ЭДА081ЭДВ080

Ссылки

  1. ^ Макгоуэн, Рик. «Технический отчет Unicode № 26 — Схема кодирования совместимости для UTF-16: 8-бит (CESU-8)». Консорциум Unicode.
  2. ^ "О технических отчетах Unicode - Типы технических отчетов Unicode: UAX, UTS, UTR". Консорциум Unicode.
  3. ^ "8.2.2.3. Кодировки символов". Стандарт HTML 5.1 . W3C.
  4. ^ "8.2.2.3. Кодировки символов". Стандарт HTML 5. W3C.
  5. ^ "12.2.3.3 Кодировки символов". HTML Living Standard . WHATWG.
  6. ^ "<meta> - HTML". MDN Web Docs . Mozilla.
  7. ^ "Документация Java SE для интерфейса java.io.DataInput, подраздел о модифицированном UTF-8". Oracle Corporation . 2015 . Получено 2021-04-30 .
  • Технический отчет Unicode №26
  • Измененное определение UTF-8
  • Графическое представление CESU-8 в Converter Explorer ICU
Взято с "https://en.wikipedia.org/w/index.php?title=CESU-8&oldid=1083247588"