Spec-Zone.ru › Tcllib

stringprep

ИМЯ

stringprep — реализация stringprep

Содержание

  • Содержание

  • Сводка

  • Описание

  • КОМАНДЫ

  • ПРИМЕРЫ

  • ССЫЛКИ

  • АВТОРЫ

  • Ошибки, идеи, отзывы

  • См. также

  • Авторские права

СВОДКА

package require Tcl 8.5 9
package require stringprep 1.0.3

::stringprep::register profile ?-mapping list? ?-normalization form? ?-prohibited list? ?-prohibitedList list? ?-prohibitedCommand command? ?-prohibitedBidi boolean?
::stringprep::stringprep profile string
::stringprep::compare profile string1 string2

ОПИСАНИЕ

Это реализация на Tcl подготовки интернационализированных строк («stringprep»). Она позволяет определять профили stringprep и использовать их для подготовки строк Unicode к сравнению, как определено в RFC-3454.

КОМАНДЫ

  • ::stringprep::register profile ?-mapping list? ?-normalization form? ?-prohibited list? ?-prohibitedList list? ?-prohibitedCommand command? ?-prohibitedBidi boolean?

    Регистрирует профиль stringprep с именем profile. Доступны следующие параметры.

    Параметр -mapping задаёт таблицы отображения stringprep. Этот параметр принимает список таблиц из приложения B RFC-3454. Обычно используются значения списка {B.1 B.2} или {B.1 B.3}, где B.1 содержит символы, которые обычно отображаются в пустую строку, B.3 задаёт преобразование регистра, а B.2 используется в профилях с формой нормализации Unicode KC. Значение по умолчанию — {}, то есть отображение не выполняется.

    Параметр -normalization принимает строку; если она непустая, то используется как имя формы нормализации Unicode. Можно использовать значения "D", "C", "KD" или "KC", хотя RFC-3454 определяет только два варианта: без нормализации или нормализация с использованием формы KC.

    Параметр -prohibited принимает список таблиц RFC-3454 с запрещёнными символами. Текущая версия позволяет запретить либо все таблицы от C.3 до C.9, либо ни одну из них. Пример такого списка для RFC-3491: {A.1 C.1.2 C.2.2 C.3 C.4 C.5 C.6 C.7 C.8 C.9}.

    Параметр -prohibitedList задаёт список дополнительных запрещённых символов. Список содержит не сами символы, а их номера Unicode. Например, спецификация Nodeprep из RFC-3920 запрещает следующие коды: {0x22 0x26 0x27 0x2f 0x3a 0x3c 0x3e 0x40} (\" \& \' / : < > @).

    Параметр -prohibitedCommand задаёт команду, вызываемую для каждого кода символа в отображённой и нормализованной строке. Если команда возвращает true, символ считается запрещённым. Этот параметр полезен, когда список для -prohibitedList слишком велик.

    Параметр -prohibitedBidi принимает логическое значение; если оно равно true, применяются правила обработки двунаправленных символов, определённые в разделе 6 RFC-3454.

  • ::stringprep::stringprep profile string

    Выполняет для строки string операции stringprep, определённые в профиле profile. Результатом является подготовленная строка либо одна из следующих ошибок: invalid_profile (профиль profile не определён), prohibited_character (строка string содержит запрещённый символ) или prohibited_bidi (строка string содержит запрещённую двунаправленную последовательность).

  • ::stringprep::compare profile string1 string2

    Сравнивает две строки Unicode, подготовленные в соответствии с профилем stringprep profile. Команда возвращает 0, если подготовленные строки равны, -1, если string1 лексикографически меньше string2, или 1, если string1 лексикографически больше string2.

ПРИМЕРЫ

Определение профиля Nameprep (см. RFC-3491):

::stringprep::register nameprep  -mapping {B.1 B.2}  -normalization KC  -prohibited {A.1 C.1.2 C.2.2 C.3 C.4 C.5 C.6 C.7 C.8 C.9}  -prohibitedBidi 1

Определения профилей Nodeprep и resourceprep (см. RFC-3920):

::stringprep::register nodeprep  -mapping {B.1 B.2}  -normalization KC  -prohibited {A.1 C.1.1 C.1.2 C.2.1 C.2.2 C.3 C.4 C.5 C.6 C.7 C.8 C.9}  -prohibitedList {0x22 0x26 0x27 0x2f 0x3a 0x3c 0x3e 0x40}  -prohibitedBidi 1

::stringprep::register resourceprep  -mapping {B.1}  -normalization KC  -prohibited {A.1 C.1.2 C.2.1 C.2.2 C.3 C.4 C.5 C.6 C.7 C.8 C.9}  -prohibitedBidi 1

ССЫЛКИ

  1. «Подготовка интернационализированных строк („stringprep“)» (http://www.ietf.org/rfc/rfc3454.txt)

  2. «Nameprep: профиль Stringprep для интернационализированных доменных имён (IDN)» (http://www.ietf.org/rfc/rfc3491.txt)

  3. «Расширяемый протокол обмена сообщениями и присутствия (XMPP): ядро» (http://www.ietf.org/rfc/rfc3920.txt)

АВТОРЫ

Сергей Голован

Ошибки, идеи, отзывы

В этом документе и описываемом в нём пакете наверняка есть ошибки и другие проблемы. Пожалуйста, сообщайте о них в категории stringprep на сайте Tcllib Trackers. Также сообщайте о любых идеях по улучшению пакета и/или документации.

Предлагая изменения кода, пожалуйста, предоставляйте унифицированные различия, то есть вывод команды diff -u.

Обратите также внимание, что предпочтительнее прикреплять вложения, а не вставлять исправления непосредственно в текст. Вложения можно добавить, открыв форму Edit заявки сразу после её создания и нажав самую левую кнопку на дополнительной панели навигации.

СМ. ТАКЖЕ

unicode(n)

АВТОРСКИЕ ПРАВА

Copyright © 2007–2009, Сергей Голован

Licensed under the BSD license
https://core.tcl-lang.org/tcllib/doc/trunk/embedded/md/tcllib/files/modules/stringprep/stringprep.md

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API