Spec-Zone.ru › Nim 1

punycode

Реализует представление Unicode с ограниченным набором символов ASCII.

Пример:

static:
  block:
    doAssert encode("") == ""
    doAssert encode("a") == "a-"
    doAssert encode("A") == "A-"
    doAssert encode("3") == "3-"
    doAssert encode("-") == "--"
    doAssert encode("--") == "---"
    doAssert encode("abc") == "abc-"
    doAssert encode("London") == "London-"
    doAssert encode("Lloyd-Atkinson") == "Lloyd-Atkinson-"
    doAssert encode("This has spaces") == "This has spaces-"
    doAssert encode("ü") == "tda"
    doAssert encode("München") == "Mnchen-3ya"
    doAssert encode("Mnchen-3ya") == "Mnchen-3ya-"
    doAssert encode("München-Ost") == "Mnchen-Ost-9db"
    doAssert encode("Bahnhof München-Ost") == "Bahnhof Mnchen-Ost-u6b"
  block:
    doAssert decode("") == ""
    doAssert decode("a-") ==  "a"
    doAssert decode("A-") == "A"
    doAssert decode("3-") == "3"
    doAssert decode("--") == "-"
    doAssert decode("---") == "--"
    doAssert decode("abc-") == "abc"
    doAssert decode("London-") == "London"
    doAssert decode("Lloyd-Atkinson-") == "Lloyd-Atkinson"
    doAssert decode("This has spaces-") == "This has spaces"
    doAssert decode("tda") == "ü"
    doAssert decode("Mnchen-3ya") == "München"
    doAssert decode("Mnchen-3ya-") == "Mnchen-3ya"
    doAssert decode("Mnchen-Ost-9db") == "München-Ost"
    doAssert decode("Bahnhof Mnchen-Ost-u6b") == "Bahnhof München-Ost"

Импорты

strutils, unicode

Типы

PunyError = object of ValueError
Исходный код Редактировать

Процедуры

proc encode(prefix, s: string): string {...}{.raises: [PunyError], tags: [].}
Кодирует строку, которая может содержать Unicode. К результату добавляется префикс prefix Исходный код Редактировать
proc encode(s: string): string {...}{.raises: [PunyError], tags: [].}
Кодирует строку, которая может содержать Unicode. Префикс отсутствует. Исходный код Редактировать
proc decode(encoded: string): string {...}{.raises: [PunyError], tags: [].}
Декодирует закодированную в Punycode строку Исходный код Редактировать

© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/punycode.html

Spec-Zone.ru

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