СпособКодированияСтроки.КодировкаURL

Свойства · URLEncoding

Кодировать (раскодировать) в URL кодировке.

Полное описание, параметры и ограничения

СпособКодированияСтроки.КодировкаURL (StringEncodingMethod.URLEncoding)

СпособКодированияСтроки (StringEncodingMethod)

КодировкаURL (URLEncoding)

Доступен, начиная с версии 8.3.1.

Описание:
Кодировать (раскодировать) в URL кодировке.
Использование в версии:

Доступен, начиная с версии 8.3.1.

Методическая информация

Практические примеры

Закодировать название товара как одно значение параметра URL

Амперсанд, плюс, процент и косая черта в названии товара не должны превращаться в разделители URL. Кодируется значение q, не весь адрес сервиса.

Где и как запускать

Полный серверный общий модуль своей учебной конфигурации. Только собственные числа и строки в памяти.

Подготовка

  1. В своей отдельной конфигурации УчебнаяКонфигурацияСинтаксиса создайте серверный общий модуль УчебныеФормулы с флагом Сервер. Вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из серверной команды учебной обработки.

  2. Все числа, строки и URI создаются внутри примера. Нет запросов к базе, файлов, сетевых соединений или вычисления произвольного кода.

  3. Для первых запусков не меняйте данные. Затем меняйте один параметр за раз и сравнивайте объяснение с результатами проверок.

  4. Булево и тригонометрические функции в этих уроках не предназначены для вызова через COM-соединение. Кодирование строк выполняется на сервере.

  5. 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);
КонецПроцедуры

Разбор по шагам

  1. Задать собственное название с символами, имеющими специальный смысл в URL.

  2. Закодировать только значение параметра q способом КодировкаURL и явно выбрать UTF8.

  3. Раскодировать тем же способом и кодировкой и проверить точное восстановление исходного названия.

  4. Приписать уже закодированное значение к своему постоянному учебному адресу. Проверить отсутствие исходных разделителей в значении.

  5. Только вывести строку URL. Не создавать HTTPСоединение и не выполнять переход.

Как проверить результат

  1. Пять сообщений Истина: точный обратный переход, исходные &, / и + в закодированном значении отсутствуют, префикс адреса сохранён.

  2. Фактическое percent-кодирование выводится; пробел не путайте с исходным знаком плюс товара.

Ожидаемый результат

Полный пример безопасного формирования одного собственного query-параметра с проверкой roundtrip.

На что обратить внимание

  1. URLВКодировкеURL сохраняет специальные символы URL и не заменяет кодирование отдельного значения параметра.

  2. Кодирование не является шифрованием: данные можно раскодировать.

  3. Не кодируйте готовое значение повторно без необходимости: процент может стать %25.

  4. Не раскодируйте весь готовый URL перед отправкой: это может вернуть разделители внутрь значений параметров.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.