Стандартная схема сжатия для Unicode - Standard Compression Scheme for Unicode

В Стандартная схема сжатия для Unicode (SCSU)[1] это Unicode Технический стандарт по сокращению количества байты необходим для представления текста в Юникоде (хотя иногда и полезен, но имеет риски безопасности и более простой UTF-8 кодирование обычно лучше), особенно если в этом тексте используются в основном символы из одного или небольшого количества блоков символов для каждого языка. Это достигается путем динамического отображения значений в диапазоне 128–255 на смещения в определенных блоках по 128 символов. Начальные условия кодировщика означают, что существующие строки в ASCII и ISO-8859-1 которые не содержат управляющих кодов C0, кроме NULL TAB CR и LF, могут рассматриваться как строки SCSU. Поскольку большинство алфавитов находятся в блоках смежных кодовых точек Unicode, тексты, в которых используются маленькие алфавиты и знаки препинания или знаки препинания ASCII, которые умещаются в пределах окна для основного алфавита, могут быть закодированы по одному байту на символ (плюс накладные расходы на настройку, которые для распространенных языков равны часто только 1 байт), большинство других знаков препинания можно закодировать из расчета 2 байта на символ посредством неблокирующего сдвига. SCSU также может переключаться на UTF-16 внутренне для обработки неалфавитных языков.

ОС Symbian, операционная система для мобильных телефонов и других мобильных устройств, использует SCSU для сериализации строк.

Рейтер, организация, выпустившая первый проект SCSU, как полагают, использует SCSU для внутренних целей.

SQL Server 2008 R2 использует SCSU для сжатия значений Unicode (это означает из строк в UCS-2 кодировка) хранится в нчар (п) и nvarchar (сущ.) колонны, позволяя сэкономить от 15% до 50% (в то время как UTF-8 уже есть 50% скидка на ASCII подмножество Unicode), в зависимости от языка данных.[2]

Сравнение со схемами сжатия обычного текста общего назначения

По сравнению с компрессорами общего назначения использование SCSU не всегда выгодно. Немногим приложениям нужно сжимать такой объем текста Unicode, что стоит использовать специальную схему сжатия, которая не имеет широкой поддержки. Кроме того, хотя его можно использовать в качестве кодировки текста, с ним может быть трудно справиться внутренне.

Рассматриваемый исключительно как алгоритм сжатия, SCSU уступает наиболее часто используемым алгоритмам общего назначения для текстов размером более нескольких килобайт.

У SCSU есть то преимущество, что он может эффективно сжимать тексты длиной всего в несколько символов, в то время как большинству полномасштабных компрессоров требуются сотни байтов данных для безубыточности с учетом собственных накладных расходов. В ОС Symbian, SCSU используется даже для операций с буфером обмена, например Вырезание, копирование и вставка небольших строк текста.

В HTML

Поддержка SCSU в HTML документы запрещены W3C[3][4] и WHATWG[5] Стандарты HTML, поскольку они представляют межсайтовый скриптинг уязвимость.[6]

Смотрите также

использованная литература

  1. ^ «UTS # 6: Схема сжатия для Unicode». 2005-05-06. Получено 2008-06-13. SCSU определяет компактную кодировку, которая иногда бывает полезной. Однако текст Unicode гораздо чаще хранится и передается в UTF-8 который менее компактен (кроме ASCII ), намного проще и не представляет никаких проблем с безопасностью. Для более длинных текстов часто применяется универсальное сжатие.
  2. ^ «Реализация сжатия Unicode (электронная документация по SQL Server 2008 R2)». Получено 2008-08-18.
  3. ^ «8.2.2.3. Кодировки символов». HTML 5.1 Стандартный. W3C.
  4. ^ «8.2.2.3. Кодировки символов». HTML 5 Стандартный. W3C.
  5. ^ «12.2.3.3 Кодировки символов». Уровень жизни HTML. WHATWG.
  6. ^ « - HTML». Веб-документы MDN. Mozilla.