URL Encode / Decode
Процентное кодирование адресов и параметров запроса.
Что такое URL-кодирование
В адресах разрешён ограниченный набор символов. Всё остальное — кириллица, пробелы, кавычки, амперсанды внутри значений — записывается в процентном виде: каждый байт UTF-8 превращается в %XX. Например, слово «поиск» в адресе выглядит как %D0%BF%D0%BE%D0%B8%D1%81%D0%BA.
Как пользоваться
- Выберите «Кодировать» или «Декодировать».
- Вставьте адрес или текст. Если это полный URL с
http://, служебные символы (: / ? # &) сохранятся, а закодируются только остальные. - Для отдельного значения параметра кодируется всё — так безопаснее подставлять его в ссылку.
- Скопируйте результат.
Примеры кодирования
- пробел →
%20(или+в данных форм); &внутри значения →%26,=→%3D,?→%3F;#→%23— иначе всё после решётки браузер посчитает якорем;- «каталог» →
%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3— каждая кириллическая буква занимает 2 байта.
Кодируйте значение один раз: повторное кодирование превращает %20 в %2520, и сервер получит не пробел, а лишние символы. Если в ссылке видны последовательности %25, скорее всего, её закодировали дважды.
Когда это нужно
- прочитать «нечитаемую» ссылку с кириллицей, скопированную из адресной строки;
- подставить в параметр значение с пробелами,
&или=; - собрать ссылку с UTM-метками — для этого есть отдельный генератор UTM;
- подготовить кириллические адреса для sitemap.xml.
URL-кодирование в PHP и Битрикс
В PHP значения параметров кодируются urlencode() (пробел → +) или rawurlencode() (пробел → %20), а строка запроса целиком собирается через http_build_query(). В Битрикс для работы с адресами есть класс Bitrix\Main\Web\Uri: он корректно добавляет и удаляет параметры без ручного кодирования.