Кодировать (раскодировать) в URL кодировке.
Полное описание, параметры и ограничения
СпособКодированияСтроки.КодировкаURL (StringEncodingMethod.URLEncoding)
СпособКодированияСтроки (StringEncodingMethod)
КодировкаURL (URLEncoding)
Доступен, начиная с версии 8.3.1.
Описание:
Кодировать (раскодировать) в URL кодировке.
Использование в версии:
Доступен, начиная с версии 8.3.1.
Методическая информация
Практические примеры
Закодировать название товара как одно значение параметра URL
Амперсанд, плюс, процент и косая черта в названии товара не должны превращаться в разделители URL. Кодируется значение q, не весь адрес сервиса.
Где и как запускать
Полный серверный общий модуль своей учебной конфигурации. Только собственные числа и строки в памяти.
Подготовка
В своей отдельной конфигурации УчебнаяКонфигурацияСинтаксиса создайте серверный общий модуль УчебныеФормулы с флагом Сервер. Вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из серверной команды учебной обработки.
Все числа, строки и URI создаются внутри примера. Нет запросов к базе, файлов, сетевых соединений или вычисления произвольного кода.
Для первых запусков не меняйте данные. Затем меняйте один параметр за раз и сравнивайте объяснение с результатами проверок.
Булево и тригонометрические функции в этих уроках не предназначены для вызова через COM-соединение. Кодирование строк выполняется на сервере.
URI example.invalid только печатается и проверяется как строка; адрес не открывается. Эти BSL-примеры не запускались автоматически в 1С.
Процедура ВыполнитьПример() Экспорт
Название = "Книга & набор + 50% / коробка";
Кодированное = КодироватьСтроку(Название, СпособКодированияСтроки.КодировкаURL, "UTF8");
Восстановленное = РаскодироватьСтроку(Кодированное, СпособКодированияСтроки.КодировкаURL, "UTF8");
УчебныйURL = "https://example.invalid/search?q=" + Кодированное;
Сообщить(Восстановленное = Название);
Сообщить(СтрНайти(Кодированное, "&") = 0);
Сообщить(СтрНайти(Кодированное, "/") = 0);
Сообщить(СтрНайти(Кодированное, "+") = 0);
Сообщить(Лев(УчебныйURL, СтрДлина("https://example.invalid/search?q=")) = "https://example.invalid/search?q=");
Сообщить("Собственное закодированное значение: " + Кодированное);
Сообщить("Учебный адрес, не открывается: " + УчебныйURL);
КонецПроцедурыРазбор по шагам
Задать собственное название с символами, имеющими специальный смысл в URL.
Закодировать только значение параметра q способом КодировкаURL и явно выбрать UTF8.
Раскодировать тем же способом и кодировкой и проверить точное восстановление исходного названия.
Приписать уже закодированное значение к своему постоянному учебному адресу. Проверить отсутствие исходных разделителей в значении.
Только вывести строку URL. Не создавать HTTPСоединение и не выполнять переход.
Как проверить результат
Пять сообщений Истина: точный обратный переход, исходные &, / и + в закодированном значении отсутствуют, префикс адреса сохранён.
Фактическое percent-кодирование выводится; пробел не путайте с исходным знаком плюс товара.
Ожидаемый результат
Полный пример безопасного формирования одного собственного query-параметра с проверкой roundtrip.
На что обратить внимание
URLВКодировкеURL сохраняет специальные символы URL и не заменяет кодирование отдельного значения параметра.
Кодирование не является шифрованием: данные можно раскодировать.
Не кодируйте готовое значение повторно без необходимости: процент может стать %25.
Не раскодируйте весь готовый URL перед отправкой: это может вернуть разделители внутрь значений параметров.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.