Кодирование и декодирование URL
Превратите %20 и %3A в ссылке во что-то читаемое — или наоборот. Параметры запроса разбираются по одному.
Результат кодирования
Здесь появится закодированный результат
Введите URL или загрузите файл
Как работает кодирование URL
В URL допустим лишь ограниченный набор символов. Всё остальное записывается как знак процента и две шестнадцатеричные цифры: пробел становится %20, а кириллическая буква — несколькими байтами. Главное — понимать, какие символы образуют структуру и потому должны остаться нетронутыми.
Значение (encodeURIComponent)
Для отдельного значения параметра или сегмента пути. Разделители — : / ? # & = — тоже кодируются, потому что здесь они текст, а не структура. Это стандарт данных формы, поэтому пробел может выглядеть и как +.
hello world → hello%20worldВесь URL (encodeURI)
Для полного адреса. Символы, образующие структуру, остаются на месте, кодируются только недопустимые — например, пробел. Это то, что нужно, когда вы чините пробел в своей ссылке.
https://a.uz/q?s=hello world → https://a.uz/q?s=hello%20worldКакой символ и когда меняется
| Символ | Как значение | Как весь URL |
|---|---|---|
| пробел | %20 | %20 |
| : | %3A | : |
| / | %2F | / |
| ? | %3F | ? |
| # | %23 | # |
| & | %26 | & |
| = | %3D | = |
| + | %2B | + |
| @ | %40 | @ |
Разница ровно в этой таблице: режим значения кодирует разделители, режим целого URL их сохраняет. Поэтому кодирование целой ссылки как значения её ломает — результат корректен лишь тогда, когда эта ссылка встраивается внутрь другого URL.
Часто задаваемые вопросы
Чем «Значение» отличается от «Весь URL»?
Это два разных стандарта. Режим значения (encodeURIComponent) кодирует также : / ? # & =, что правильно для отдельного значения параметра или сегмента пути. Режим целого URL (encodeURI) их сохраняет и кодирует только недопустимые символы. Примените кодирование значения к целой ссылке — и https://… превратится в https%3A%2F%2F…, строку, которая уже не работает как ссылка и осмысленна только как значение внутри другого URL.
Почему + иногда становится пробелом?
Данные формы (application/x-www-form-urlencoded) записывают пробел как +. Поэтому в режиме значения декодирование превращает + в пробел — именно это нужно для строк запроса, скопированных из адресной строки браузера. Настоящий плюс кодируется как %2B. В режиме целого URL + не трогается, потому что в пути это обычный символ.
Когда нужно кодирование URL?
Всегда, когда значение попадает внутрь URL: поисковый запрос, адрес электронной почты, другая ссылка, что угодно, введённое пользователем. Незакодированные & или = ломают границы параметров, а пробел местами обрезает ссылку. Это не шифрование — оно ничего не прячет, а лишь отделяет текст от структуры URL.
Отправляются ли мои данные на сервер?
Нет. Кодирование, декодирование и разбор URL происходят в вашем браузере. После загрузки страницы инструмент не делает ни одного сетевого запроса, поэтому его безопасно использовать со ссылками, содержащими токен.