Двоичное упорядоченное сжатие для Unicode
-
Обзор BOCU-1
- BOCU-1 — это схема сжатия Unicode, совместимая с MIME, которая сочетает в себе преимущества UTF-8 и SCSU.
- Она предназначена для сжатия коротких строк и поддерживает порядок кодовых точек.
- BOCU-1 указана в техническом примечании к Unicode и зарегистрирована IANA.
-
Сравнение с SCSU
- SCSU не получил широкого распространения из-за ограничений для MIME-носителей и сложности энкодера.
- Алгоритмы zip, bzip2 и другие более эффективны для сжатия больших объемов текста в Юникоде.
-
Особенности кодирования
- Кодовые точки от U+0000 до U+0020 кодируются как соответствующие байтовые значения.
- Остальные кодовые точки кодируются как разница между кодовой точкой и нормализованной версией последней кодовой точки, не в формате ASCII.
- Начальное состояние кодировки — U+0040, и каждый диапазон байтов упорядочен лексикографически, за исключением тринадцати байтов.
- Повреждение одного байта влияет только на одну строку, в отличие от UTF-8 и SCSU, где это может повлиять на весь документ.
-
Ограничения и рекомендации
- Использование байта сброса 0xFF не рекомендуется, так как это противоречит целям разработки BOCU-1.
- Добавление байта сброса после подписи также не рекомендуется.
- BOCU-1 требует не более четырех байт для кодирования, и она может использовать 243 октета в многобайтовых кодировках.
- До 16 ноября 2022 года алгоритм BOCU был защищен патентом США, который истек.
- IBM требует бесплатную лицензию для «полностью совместимой версии BOCU-1», в отличие от UTF-EBCDIC, где документация и схема кодирования были сделаны свободно доступными.
-
Рекомендации и дополнительные ресурсы
- В статье также упоминается сравнение с UTF-1 и ссылка на Международные компоненты для Unicode, библиотеку для конвертации между BOCU-1 и другими кодировками Unicode.
Полный текст статьи: