IPConnection.HTTPURLEncode

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

Функция выполняет кодирование произвольной строки в URL-формат, в строке-результате остаются только символы, которые можно использовать в URL. При кодировании международных символов, строка из формата UTF-16 обычно сначала переводится в формат UTF-8, однако, кодирование в UTF-16 разрешено. Функция может быть вызвана непосредственно из интерфейса. По своему действию функция совпадает с EncodeString с форматом кодирования Percent-encoding. Важное замечание: обычно URL кодирование осуществляется не для имени сервера, а для добавочного пути после имени сервера (т.е. для https://ru.wikipedia.org/wiki/Информация кодируется только Информация, что дает результат https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F). Функция кодирует любые символы с кодами >127, а также <33 и следующие символы: "!", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "/", ":", ";", "=", "?", "@", "[", "]", в режимах 0 или 1 (см. аргументы) также кодирует дополнительно ".", "-", "<", ">", "~", "^", "`", "\", "{", "}", "|", "_" и Chr(127).

Синтаксис

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

Аргументы

  • <Строка для кодирования (STRING)> - Строка для кодирования (обычно дополнительный путь URL).
  • <Режим кодирования (INT)> - (необязательный аргумент) Аргумент задает режим кодирования. Возможны следующие значения:
    • 0 (по умолчанию) -- Кодировать также дополнительные символы (".", "-", "<", ">", "~", "^", "`", "\", "{", "}", "|", "_" и Chr(127))
    • 1 -- Кодировать также дополнительные символы, кодировать пробел как "+"
    • 2 -- Кодировать только основные символы
    • 3 -- Кодировать только основные символы, кодировать пробел как "+"

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

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

Примеры

//Пример неверного кодирования URL
//Выводится строка: "https%3A%2F%2Fru%2Ewikipedia%2Eorg%2Fwiki%2F%C8%ED%F4%EE%F0%EC%E0%F6%E8%FF"
Message(IPConnection.HTTPURLEncode("https://ru.wikipedia.org/wiki/Информация"));

//Пример верного кодирования URL
//Выводится строка: "https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F"
Message("https://ru.wikipedia.org/wiki/"+IPConnection.HTTPURLEncode(UnicodeToUTF8("Информация")));