Кодирует строку в соответствии с выбранным способом кодирования.
Синтаксис
КодироватьСтроку(<Строка>, <СпособКодированияСтроки>, <КодировкаСтроки>)Примеры платформы
Стр1 = КодироватьСтроку("http://tools.ietf.org/папка/rfc2822",
СпособКодированияСтроки.КодировкаURL);
Стр2 = КодироватьСтроку("http://tools.ietf.org/папка/rfc2822",
СпособКодированияСтроки.URLВКодировкеURL);
Стр3 = РаскодироватьСтроку(
"http://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D1%80",
СпособКодированияСтроки.КодировкаURL);
Сообщить(Стр1);
Сообщить(РаскодироватьСтроку(Стр1,
СпособКодированияСтроки.КодировкаURL));
Сообщить(Стр2);
Сообщить(РаскодироватьСтроку(Стр2,
СпособКодированияСтроки.КодировкаURL));
Сообщить(Стр3);
Сообщить(КодироватьСтроку(Стр3,
СпособКодированияСтроки.URLВКодировкеURL));Полное описание, параметры и ограничения
Глобальный контекст.КодироватьСтроку (Global context.EncodeString)
Глобальный контекст (Global context)
КодироватьСтроку (EncodeString)
Доступен, начиная с версии 8.3.1.
Синтаксис:
КодироватьСтроку(<Строка>, <СпособКодированияСтроки>, <КодировкаСтроки>)
Параметры:
<Строка> (обязательный)
Тип: Строка.
Кодируемая строка.
<СпособКодированияСтроки> (обязательный)
Тип: СпособКодированияСтроки.
Способ кодирования строки.
<КодировкаСтроки> (необязательный)
Тип: Строка.
Кодировка, в которую преобразуется строка перед кодированием.
Значение по умолчанию: UTF8.
Возвращаемое значение:
Тип: Строка.
Описание:
Кодирует строку в соответствии с выбранным способом кодирования.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Пример:
Стр1 = КодироватьСтроку("http://tools.ietf.org/папка/rfc2822",
СпособКодированияСтроки.КодировкаURL);
Стр2 = КодироватьСтроку("http://tools.ietf.org/папка/rfc2822",
СпособКодированияСтроки.URLВКодировкеURL);
Стр3 = РаскодироватьСтроку(
"http://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D1%80",
СпособКодированияСтроки.КодировкаURL);
Сообщить(Стр1);
Сообщить(РаскодироватьСтроку(Стр1,
СпособКодированияСтроки.КодировкаURL));
Сообщить(Стр2);
Сообщить(РаскодироватьСтроку(Стр2,
СпособКодированияСтроки.КодировкаURL));
Сообщить(Стр3);
Сообщить(КодироватьСтроку(Стр3,
СпособКодированияСтроки.URLВКодировке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 перед отправкой: это может вернуть разделители внутрь значений параметров.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Закодировать кириллический путь в своём готовом 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 используется только как учебный адрес, не как работающий ресурс.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.