IPConnection.HTTPPunycodeEncode

From SunFlurry wiki
Jump to: navigation, search
  HTTPPunycodeEncode (Кодирование частей URL)
Объект:Объект IP
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число
Визуальность:Нет

Функция выполняет кодирование произвольной строки в формат Punycode, используется для доменной части URL, если она содержит международные символы. Кодирование осуществляется в режиме URL или в режиме обычной строки. Допускается кодирование символов юникода с кодами >65535 (занимающих 4 байта, см. Строки). Функция может быть вызвана непосредственно из интерфейса. По своему действию функция совпадает с EncodeString с форматом кодирования Punycode (за исключением режима по умолчанию). К примеру москва.рф кодируется в xn--80adxhks.xn--p1ai. Размер строки для кодирования ограничен способом кодирования, при переполнении переменных кодировщика, будет возвращена пустая строка. Punycode может использоваться также для получения ссылки на так называемые эмодзи домены, т.е., доменные имена, в которых присутствуют картинки, типа смайликов и пр. К примеру, 💩.to или 😎.com после конвертации в Punycode будут превращены в xn--ls8h.to и xn--s28h.com соответственно.

Синтаксис

IPConnection.HTTPPunycodeEncode(<Строка для кодирования (STRING)>,<Режим кодирования (INT)>=1):<Результат кодирования (STRING)>

Аргументы

  • <Строка для кодирования (STRING)> - Строка для кодирования (обычно доменное имя URL).
  • <Режим кодирования (INT)> - (необязательный аргумент) Аргумент задает режим кодирования. Возможны следующие значения:
    • 0 -- кодирование произвольных строк (игнорируется доменная структура строки <домен1>.<домен2>..., не добавляется префикс xn--). К примеру, москва.рф кодируется в .-7sbf5ajmsd6a.
    • 1 (по умолчанию) -- кодирование доменных имен (каждое доменное имя из строки <домен1>.<домен2>... кодируется отдельно, добавляется префикс xn--). К примеру, москва.рф кодируется в xn--80adxhks.xn--p1ai. Если доменное имя не содержит международных символов, оно не будет закодировано.

Возвращаемое значение

Возвращается строку-результат кодирования

Примеры

//Пример верного кодирования URL
//Выводится строка: "xn--80adxhks.xn--p1ai"
Message(IPConnection.HTTPPunycodeEncode("москва.рф"));

//URL кодируется как строка, результат нельзя использовать для ссылки в Интернете
//Выводится строка: ".-7sbf5ajmsd6a"
Message(IPConnection.HTTPPunycodeEncode("москва.рф",0));