ГО С Т ISO/IEC 24824-1— 2013
7.17.2 Тип E n co d e d C h a ra cte rS trin g содержит кодирование строки символов. Он определяет
строку октетов, которая является обратимым отображением строки символов в строку октетов. Созда
тель документа быстрого иифо-набора определяет в e n c o d in g -fo rm a t использованное кодирование, а
обработчик документа быстрого инфо-набора использует эту информацию для декодирования окте тов
в компоненте o c te ts в строку символов.
7.17.3 Компонент o c te ts передает значение строки октетов, которая является кодированием
строки символов, заданным в компоненте e n co d in g -fo rm a t.
При м ечани е — В общем случае существует несколько кодирований, которые могут быть использованы
для данной строки символов. Создатель документа быстрого инфо-набора может выбрать кодирование на основа
нии определенных критериев (например, он может постараться оптимизировать размер или скорость обработки),
но может предпочесть удобство и универсальную применимость UTF-8 или UTF-16BE. Возможны случаи, когда
некоторые кодирования будут применимы только для строк символов, которые содержат только подмножество
символов ISO/IEC 10646.
7.17.4 Формат кодирования u t f -8 может быть использован для любой строки символов. Данный
формат кодирования следует применять, создавая кодирование U TF-8 (см. ISO/IEC 10646) строки сим
волов и присваивая его компоненту o c te ts .
При м ечани е — Этот формат кодирования наиболее подходит для строк символов, в которых наиболее
часто встречаются символы из начальной части основной многоязычной плоскости ISO/IEC 10646 и когда нет дру
гих применимых или болев полезных форматов кодирования.
7.17.5 Формат кодирования u t f -16 может быть использован для любой строки символов. Дан
ный формат кодирования следует применять, создавая кодирование UTF-16BE (см. Unicode, п. 2.6)
строки символов и присваивая его компоненту octets.
Примечания
1 Этот формат кодирования наиболее подходит для строк символов, в которых присутствует широкий диа
пазон символов ISO/IEC 10646 и когда нет других применимых или более полезных форматов кодирования.
2 Порядок байтов в кодировании UTF-16BE определен в Unicode, п. 2.6: самый старший байт первый (наи
более ранний байт в строке октетов).
7.17.6 Формат кодирования re s tric te d -a lp h a b e t основан на использовании алфавита с огра
ниченной областью распространения, выбираемого из имеющихся в таблице алфавитов с ограничен
ной областью распространения. Компонент re s tric te d -a lp h a b e t должен содержать индекс сло
варной таблицы алфавитов с ограниченной областью распространения. Это кодирование может быть
использовано только для строки символов, которая полностью состоит из символов алфавита с ограни
ченной областью распространения в записи таблицы алфавитов с ограниченной областью распростра
нения. проиндексированной компонентом re s tric te d -a lp h a b e t. Формат кодирования r e s t r ic t e d -a
lp h a b e t следует применять, как определено в 7.17.6.1— 7.17.6.6.
7.17.6.1 Каждому символу алфавита с ограниченной областью распространения должно быть
присвоено целое значение (начиная с нуля) по порядку.
7.17.6.2 Каждый символ в строке символов должен быть преобразован в целое значение, которое
присвоено данному символу в алфавите с ограниченной областью распространения.
7.17.6.3 Каждое целое значение должно быть представлено как целое двоичное значение без
знака в битовом поле. Размер битового поля должен определяться целым значением, присвоенным по
следнему символу в алфавите с ограниченной областью распространения. Это целое значение должно
быть увеличено на 1, чтобы получить другое целое значение (например. N). Размер битового поля дол жен
быть равен минимальному количеству битов, необходимых для кодирования N как целого значения без
знака.
Примечания
1 Увеличение на 1 необходимо потому, что значение из одних единиц в битовом попе интерпретируется как
конец строки символов и не может быть использовано для представления символа. Это означает, что если алфа вит
с ограниченной областью распространения содержит некоторое число символов, точно равное степени двух, то
битовое поле должно содержать на один бит больше, чем можно ожидать вдругом случае.
2 Например, если в алфавите с ограниченной областью распространения содержится 24 символа, то каж
дый из символов будет кодироваться в 5 битов, но если в алфавите 32 символа, то каждый из них будет кодиро
ваться в 6 битов.
7.17.6.4 Все полученные битовые поля должны быть сцеплены (по порядку) в битовую строку.
24