URL кодирование и декодирование

Кодирует адрес и значения параметров в percent-encoding и раскодирует обратно. Домен переводит в punycode, разбирает ссылку на части и показывает utm-метки по одной.

0 символов · 0 байт

Что делает инструмент

В адресе разрешены не все знаки: пробел, кавычки, кириллица и служебные «&», «=», «?» записываются процентами — по два шестнадцатеричных знака на каждый байт UTF-8. Буква «я» превращается в %D1%8F, пробел — в %20.

Кодирование идёт в четырёх видах, потому что части адреса живут по разным правилам. Обратный разбор один: инструмент читает последовательности %XX и показывает, что за ними стояло.

Адрес целиком и отдельное значение — разные задачи

Самая частая ошибка: целую ссылку прогоняют через кодирование значения. Тогда «://» и «?» становятся процентами, и ссылка перестаёт открываться. Обратная ошибка тоже дорогая: значение параметра со знаком «&» внутри разрывает строку запроса, и часть параметров теряется.

Режим «адрес целиком» кодирует каждую часть по её правилам: домен переводит в punycode, «/» и «?» оставляет на местах, а имена и значения параметров кодирует полностью. Готовые последовательности %XX при этом не кодируются заново.

Кириллический домен пишется в punycode

Проценты в имени хоста не работают: пример.рф в ссылке записывается как xn--e1afmkfd.xn--p1ai. Перевод считается здесь же, в обе стороны, по RFC 3492. Для домена целиком, с проверкой длины меток и подменённых букв, есть отдельный конвертер punycode.

Разбор ссылки и utm-метки

Под результатом видно, из чего собран адрес: схема, хост, порт, путь, якорь и параметры по одному, с раскодированными значениями. Ради этого декодер чаще всего и открывают — посмотреть, что рекламная система записала в utm_source и utm_campaign.

Значение, которое не раскодировалось, отмечается отдельно: обрезанный хвост вида %D0 ломает только свой параметр, а не весь разбор.

Пробел: %20 или плюс

В пути пробел записывается только как %20. В строке запроса и в теле формы его по традиции пишут плюсом, поэтому при раскодировании есть галочка «+ считать пробелом». Если плюс стоял в тексте сам по себе — в номере телефона или в подписи, — галочку нужно снять.

Другие инструменты