Описание стандарта
Назначение стандарта
Стандарт Unicode:
- определяет единообразный способ кодирования многоязычного текста, который обеспечивает международный обмен текстовыми данными;
- служит кодировкой по умолчанию для гипертекстов в форматах HTML и XML.
- обеспечивает основу проектирования программного обеспечения.
Стандарт Юникода позволяет хранить, искать сопоставлять тексты Веба с помощью программного кода.
Архитектурный контекст стандарта
Стандарт Юникода позволяет выявить полезные процессы обработки текстовых данных. Интерес представляют не сами кодировки символов, а процессы обслуживания потребителей текстов.
Компьютерные программы предоставляют низкоуровневую функциональность для небольшого числа процессов обработки текста. Эти процессы предоставляют возможность более сложного преобразования. Метафорой могут служить примитивные кирпичи из которых архитекторы возводят величественные здания.
Перечислим простые процессы обработки текстовых данных:
- переносы символов в конце строки;
- отображение символов (глифы);
- изменение внешнего вида глифа: кегля, кернинга, подчёркивание, наклон, насыщенность (тонкий, регулярный, курсивный, полужирный шрифт);
- определение производных единиц измерения текста: слово, строка, блок строк;
- выбор и подсветка строки текста;
- ввод текста с клавиатуры и из других источников, редактирование, сохранение записей;
- сравнение строки при поиске или сортировке;
- анализ текста при проверке орфографии или морфологическом анализе;
- обработка массива текста: сжатие, распаковка, усечение, передача и получение.
Свойства стандарта
Проектирование Юникода представляет собой попытку поиска баланса между консистентностью (единообразием) и совместимостью с другими стандартами Веба.
Архитектура стандарта Юникод балансирует между конкурирующими требованиями. Поиск баланса воплощён в следующих свойствах Юникода:
- универсальность;
- практичность;
- символьность;
- семантичность;
- обычный текст;
- логичность;
- унифицированность;
- стабильность;
- конвертируемость.
Рассмотрим каждое свойство Юникода подробнее.
Универсальность Юникода в том, что в нём представлен единый набор символов, достаточный для представления текста современной письменности любого из языков мира.
Практичность Юникода в том, что все коды одинаково доступны. Отсутствуют экранированные символы и состояния сдвига. Кодировки стандарта (UTF-8, UTF-16, UTF-32) внутренне синхронные и не перекрывают друг друга. Это обеспечивает результативный поиск внутри потока символов. В стандарте определены однозначные действия с символами. Это позволяет применять операции управления классами, включая наследование.
Символьность Юникода в том, что введено отличие символа от глифа. Абстрактные символы содержат буквы, цифры, знаки препинания, техническую и математическую нотацию. Запись хранит только коды символов.
Шрифт состоит из набора глифов. Шрифт позволяет отображать глифы на бумаге или экране устройства. Шрифты и глифы не относят к области стандартизации Юникода.
Семантичность Юникода в том, что семантика символов позволяет выстраивать дальнейшие уровни семантики текста. Семантика символа явно задана посредством свойств. Наименование символа и его положение в кодовой таблице не служат неявной семантике. Свойства символа описаны в базе данных Юникода. Машиночитаемые таблицы используют для анализа, сортировки и других алгоритмов, требующих семантических данных о кодовой точке. Свойства символа дополняют описание письменности и поведение символа в контексте этой письменности.
Стандарт Юникода определяет более ста различных свойств символов. При необходимости свойства можно дополнить.
Обычный текст это чистая последовательность кодов символов. В отличие от обычного текста
Назначение обычного текста:
- Представляет собой основной поток содержательного текста, который возможно форматировать.
- Общедоступный, стандартизованный, универсально читаемый.
Обычный текст служит основной частью форматированных текстов. Например, SGML, RTF, HTML, XML, TEX. Другими словами, гипертекст — это стилизованный, форматированный текст.
Назначение стилизованного текста:
- Содержит данные о форматировании.
- Содержит сведения о контексте.
- Существуют специфичные в реализации или запатентованные представления стилизованного текста.
Стандарт Юникода кодирует только обычный текст. Форматирование текста происходит на более высоком уровне управления текстом.
Логичность Юникода определяет последовательность символов как для записи, так и для чтения.
Стандарт Юникода точно определяет преобразование текста из логического порядка в порядок читаемого (отображаемого) текста. Именно для этого символ имеет свойство направленности.
Унифицированность самое спорное и противоречивое свойство Юникода. С одной стороны, мотивируя попыткой избежать дублирования, Юникод часто присваивает один и тот же код символам различных языков. С другой стороны, в математических и фонетических нотациях символы не унифицированы.
Юникод не кодирует язык, шрифт, размер, позиционирование глифа.
Стабильность некоторых аспектов Юникода гарантирует, что текстовые данные после кодирования сохранят своё значение. После назначения символов в Юникод кодовые точки никогда не изменяют и не удаляют. Все ранее добавленные данные сохраняют во всех последующих версиях. Даже если символ устаревает, его не удаляют, а лишь добавляют рекомендацию не применять этот символ. Наименования символов также никогда не изменяют. Это позволяет использовать наименования в качестве идентификаторов. Правила декомпозиции также не изменяют. Нормализованный текст одной версии можно не нормализовать повторно во всех последующих версиях.
Гарантирована конвертируемость символов Юникода в другие стандарты. Как правило, одна кодовая точка одного стандарта соответствует одной кодовой точке стандарта Юникода.
Приложения к стандарту Юникода
Из множества приложений Юникода для инженерии Веба полезны следующие:
- UAX #14: Unicode Line Breaking Algorithm;
- UAX #24: Unicode Script Property;
- UAX #29: Unicode Text Segmentation;
- UAX #31: Unicode Identifier and Pattern Syntax;
- UAX #34: Unicode Named Character Sequences;
- UAX #42: Unicode Character Database in XML;
- UAX #44: Unicode Character Database.
Полезные ссылки
Уточнить интересующие сведения в Юникоде можно в следующих источниках:
- глоссарий понятий Юникода;
- индекс символов Юникода (Unicode Character Name Index);
- нормативные документы, лежащие в основании текущей версии стандарта Юникода Особенно впечатляет в стандарте Юникода 2025 года актуальность представленного Россией «ГОСТ 10859-64. Машины вычислительные. Коды алфавитно-цифровые для перфокарт и перфолент».
- база данных символов Юникода (Unicode Character Database, UCD);
- сведения о версиях стандарта Юникода и в частности о текущей версии стандарта Юникода;;
- таблицы кодов символов и список наименований;
- приложения к стандарту Юникода;
- актуальная версия политики стабильности кодировки.