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. В строке запроса и в теле формы его по традиции пишут плюсом, поэтому при раскодировании есть галочка «+ считать пробелом». Если плюс стоял в тексте сам по себе — в номере телефона или в подписи, — галочку нужно снять.

Двойное кодирование

Признак — %2520 вместо %20: знак процента закодировали ещё раз. Инструмент замечает это и в исходной строке, и в результате, а раскодировать такую строку нужно дважды.

Частые знаки

ЗнакКодЗнакКод
пробел%20&%26
!%21+%2B
"%22,%2C
#%23/%2F
$%24:%3A
%%25=%3D
'%27?%3F
(%28@%40
)%29а%D0%B0

Адрес остаётся в браузере

Ссылки с токенами и ключами лучше никуда не отправлять. Кодирование, punycode и разбор считаются на вашей стороне, на сервер ничего не уходит.

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