ГОСТ Р ИСО/МЭК 8825-2-2003
j
ограниченных символьных строк длиной свыше 64К-1 длина кодируется явно (при необходимости, с фрагмен
тацией). Каждый символ NumericString, Printable-String, VisibleString (IS0646String). lA5String. BMPString и
UnivcnialString кодируется в число битов, которое яатяется минимальной степенью двух, позволяющей размес тить
все символы, допускаемые -аффективным ограничением PcrmittcdAlphabct.
3 (Размер закодированных символов) Кодирование каждою символа зависит от эффективного ограни чения
PcrmittcdAlphabct (см. 9.3.10). которое определяет используемый для типа алфавит. Пусть этот алфавит
состоит из набора символов ALPHA. Для каждого типа символьных строк известной кратности (см. 3.7.16) есть
целочисленное значение, связанное с каждым символом, полученное путем ссылки на некоторую таблицу
кодов, связанную с ограниченным типом символьных строк. Набор значений BETA, соответствующих набору
символов ALPHA, используется для определения кодирования, которое должно применяться, следующим
образом: число битов для кодирования каждого символа полностью определяется числом элементов N в наборе
BETA (или ALPHA). Дли варианта UNALIGNED оно равно наименьшему количеству битов, в которых можно
закодировать значение Д—1 как неотрицательное двоичное целое число. Для варианта ALIGNED оно равно
минимальному количеству битов, которое является степенью двух it в которых можно закодировать значение
V—1. Пусть выбранное количество битов равно В. Тогда, если каждое значение в наборе BETA может* быть
закодировано (без преобразования) в И битах, го значения в наборе BETA используются для представления
соответствующих символов в наборе ALPHA. В противном случае значения в наборе BETA берутся в возрас
тающем порядке и заменяются значениями 0, 1.2. и так далее до .V—I, и эти значения используются для
представления соответствующих символов. В результате всегда используется минимум битов (в варианте
ALIGNED —округленный до следующей степени двух). Предпочтение отдается использованию значений,
обычно связанных с символами, но если какое-то из этих значений нс может бытьзакодировано минимальным
количеством битов, то применяется уплотнение.
26.1 Типами символьных строк известной кратности являются следующие ограниченные типы
символьных строк: Numeric-String, PrintableSt ring, VisibleString (IS0646String), IA5St ring. BMPString и
UniversalString. Эффективные ограничения PermittedAlphabet являются видимыми для PER только ятя
этих типов.
26.2 Нотация эффективного ограничения размера может определять верхнюю границу attb
длины абстрактной символьной строки. В противном случае aub не устанавливается.
26.3 Нотация эффективного ограничения размера может определять ненулевую нижнюю гра
ницу alb длины абстрактной символьной строки. В противном случае alb — нуль.
Прн мсч аи и е —Видимые для PER ограничении применяются только к типам символьных строк
известной кратности. Для другихограниченныхтиповсимвольныхстрок aubне устанавливается, иalb равняется
нулю.
26.4 Если тип является расширяемым для кодирований PER (см. 9.3.15). то к списку палей
должно бытьдобавлено битовое поле, состоящее из единственного бита. Этот бит должен быть равен
нулю, если значение находится в диапазоне корня расширения, и единице —в противном случае. Если
значение находится вне пределов диапазона корня расширения, то последующее кодирование должно
быть таким, как если бы не было ни эффективного ограничения размера, ни эффективного
ограничения PermittedAlphabet.
При ме ча ние —Только типы символьных строк известной кратности могут быть расширяемыми для
кодирований PER. Маркеры расширения в других типах символьных строк не влияют на кодирование PER.
26.5 Настоящий подраздел для символьных строк известной кратности. Кодирование других
ограниченных типов символьных строк специфицируется в 26.6.
26.5.1 Эффективный допустимый алфавит определяется как допускаемый ограничением Per
mittedAlphabet, или как весь алфавит встроенного типа, если нет ограничения PermittedAlphabet.
26.5.2 N обозначает число символов в эффективном допустимом алфавите. В обозначает
минимальное целое число, такое, что I s
2
N. В 2— минимальный показатель степени 2, больший или
равный В. Тогда в варианте ALIGNED каждый символ должен кодироваться в В2 битов, а в
варианте UNALIGNED — в В битов. Число битов, определенных по этому правилу, обозначено Ь.
26.5.3 Скаждымсимволомсвязываетсячисловоезначениеvссылкойна
ГОСТ Р ИСО/МЭК 8824-1, раздел 38, следующим образом. Для UniversalString это значение, кото рое
используется для определения канонического порядка в ГОСТ Р ИСО/МЭК 8824-1, 38.4 (оно
находится в диапазоне от 0 до 231 — 1). Для BMPString это значение, которое используется для
определения канонического порядка в ГОСТ Р ИСО/МЭК 8824-1. 38.5 (оно находится в диапазоне
от 0 до 216 — 1). Для NumericString, PrintableString, VisibleString и IA5String это значение, которое
определяется ИСО/МЭК 646 дтя кодирования соответствующего символа. (Для IA5String это диа
пазон от 0 до 127, для VisibleString - от 32 до 126. для NumericString - от 32 до 57. для PrintableString —
26