ГОСТ Р ИСО 13584-26—2006
В случав, если идентификацию поставщика применяют в любой другой части комплекса
ИСО 13584 или в МЭК61360-2:1997 [2]. то в ней недолжны использоваться ИПО и ПИПО.
П р и м е ч а н и е 7 — Хотя ИПО и ПИПО могут и не использоваться в других частях комплекса стандартов
ИСО 13584 или в МЭК 61360-2:1997. настоящий стандарт обеспечивает механизм их кодирования, чтобы они могли
использоваться как часть идентификации поставщика в том случае, когда положения настоящего стандарта исполь
зуются в других стандартах.
4.2 Функции
4.2.1Функциюencode используютдляоднозначногокодирования ИОиИПО приобменеданными.
Функция encode преобразует строку s, заменяя в ней любой символ из графы «Символ» таблицы 2 со
ответствующей последовательностью символов, указанной в графе «Замещающая строка» в той же
строке.
Функция encode всегда заменяет символ «%» на «%%» и «/» на «%/». Крометого, любые символы,
которые передаются в аргументе characters, заменяютсяследующей последовательностью символов:
%. код символа по ИСО/МЭК10646-1 и :.
Т а б л и ц а 2 — Подстановки символов для функции encode
СимволНаименование символа
Замещающая
строка
Комментарий
%Процент
%%
—
1
Косая черта
%>
—
Любой символ, использование ко
торого а коде поставщика не до
пускается настоящим стандартом
%Л1.
N — код символа из набора симво
лов ИСО/МЭК 10646-1. интерпре
тируемого как целое число
*>
FUNCTION encode(s:STRING; characters: SET OF STRING): STRING;
LOCAL
i: INTEGER;
pos: INTEGER;
strtmp: STRING;
result: STRING
END_LOCAL.
REPEAT i := 1TO LENGTH(s);
IF s [i] IN f%’, 7*]THEN
result: = result ♦’%’ +s[i];
ELSE
IF s [i] IN characters THEN
pos:= icode (s [i]);
strtmp: = FORMAT (pos.’27);
IFpos <10 THEN
strtmp: =strtmp [2:2];
ENDJF;
result:= result +
’% ’
+ strtmp +’
ELSE
result:= result +s[i];
END IF;
ENDJF;
END_REPEAT;
RETURN (result);
END_FUNCTION;
4