CESU-8

редактировать

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

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

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

Поддержка CESU-8 в документах HTML запрещена стандартами W3C и WHATWG HTML, так как это может привести к перекрестию -site scripting уязвимость.

Java Modified UTF-8 - это CESU-8 с дополнительной специальной кодировкой символа NUL (U + 0000).

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

Примеры
Кодовая точка Unicode
U+0045U+0205U + 10400
Eȅ𐐀
UTF-845C885F0909080
UTF-1600450205D801DC00
CESU-845C885EDA081EDB080
Литература
Внешние ссылки
Последняя правка сделана 2021-05-13 10:42:42
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте