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