Кодировщик и декодировщик URL — URL и строки запросов
Процентно кодируйте текст для URL и строк запросов или возвращайте закодированный URL к читаемому виду прямо в браузере.
Выберите режим, вставьте текст и нажмите «Преобразовать». Кодирование компонента подходит для значений запроса, кодирование полного URL сохраняет структуру адреса, а декодирование отменяет процентное кодирование.
Кодировщик и декодировщик URL — URL и строки запросов
Процентно кодируйте текст для URL и строк запросов или возвращайте закодированный URL к читаемому виду прямо в браузере.
Кодирует все зарезервированные символы, включая & = ? / и #. Используйте для отдельного значения запроса или сегмента пути.
Принцип работы: символы вне незарезервированного набора заменяются байтами UTF-8, записанными шестнадцатеричными парами %XX. Используются encodeURIComponent, encodeURI и decodeURIComponent.
О кодировщике и декодировщике URL
URL безопасно передают лишь ограниченный набор символов. RFC 3986 определяет незарезервированные буквы, цифры и знаки - _ . ~, а также зарезервированные символы ? & = / и # со структурным значением. Всё остальное — от пробела до буквы с диакритикой или CJK-символа — нужно кодировать: символ превращается в байты UTF-8, каждый байт записывается знаком процента и двумя шестнадцатеричными цифрами. Инструмент мгновенно выполняет это преобразование в браузере, не отправляя вставленные данные на сервер.
Доступны три режима, поскольку JavaScript различает две задачи кодирования. Кодировать компонент использует encodeURIComponent и экранирует каждый зарезервированный символ. Это подходит для поискового запроса, цели перенаправления, токена или значения после знака равенства. Кодирование & и = не даёт разделить значение на несколько параметров.
Кодировать полный URL использует encodeURI для уже структурированного адреса. Пробелы, кавычки, угловые скобки и не-ASCII-символы экранируются, но : / ? & = # сохраняются, чтобы не изменить схему, хост, путь и запрос. Кодирование всего URL как компонента разрушило бы его структуру.
Декодировать обращается к decodeURIComponent: %20 становится пробелом, %26 — амперсандом, а %C3%BC — буквой ü. Это удобно для чтения ссылок отслеживания, проверки OAuth-перенаправлений и анализа форм. Одиночный % без двух шестнадцатеричных цифр вызывает понятную ошибку.
Инструмент полезен для подготовки параметров API, исправления ссылок с пробелами, вложения URL и распутывания цепочек перенаправлений. Процентное кодирование — это синтаксис передачи, а не защита: строки легко обратимы. Не считайте их скрытыми данными и всегда проверяйте декодированный ввод на сервере.
Примеры кодирования URL
Как три режима обрабатывают зарезервированные символы, пробелы и текст не в ASCII.
| Ввод | Вывод | Примечание |
|---|---|---|
| price=1+2 (Кодировать компонент) | price%3D1%2B2 | = и + зарезервированы в строках запросов и превращаются в %3D и %2B. |
| https://example.com/my files/report 2024.pdf (Полный URL) | https://example.com/my%20files/report%202024.pdf | Пробелы становятся %20, а схема и косые черты сохраняются. |
| na%C3%AFve (Декодировать) | naïve | Двухбайтовая UTF-8-последовательность %C3%AF декодируется в букву ï. |
| 50% off (Кодировать компонент) | 50%25%20off | Сам знак процента нужно кодировать как %25, иначе декодировщик неверно прочитает продолжение. |
Как кодировать или декодировать URL
- Выберите режим: компонент для отдельного значения, полный URL для адреса или декодирование для обратного преобразования.
- Вставьте текст или URL в поле «Ввод».
- Нажмите «Преобразовать» — результат сразу появится в поле «Вывод».
- Скопируйте результат или нажмите «Очистить», чтобы начать заново.
Частые вопросы о кодировщике URL
Чем отличаются encodeURIComponent и encodeURI?
encodeURIComponent экранирует все зарезервированные символы, включая / ? & = и #, поэтому применяется к отдельным значениям. encodeURI сохраняет структурные символы и используется для полного URL. В инструменте это режимы кодирования компонента и полного URL.
Почему пробел превращается в %20, а не в +?
%20 — стандартное процентное представление пробела в URL. Правило + относится к старому формату application/x-www-form-urlencoded для HTML-форм и действует только в строке запроса. Инструмент всегда выдаёт %20, а при декодировании оставляет + как плюс.
Почему при декодировании появляется ошибка?
decodeURIComponent выдаёт ошибку, если после % нет двух допустимых шестнадцатеричных цифр — например, при обычном знаке процента или оборванной последовательности. Убедитесь, что ввод полностью закодирован.
Как кодируются диакритика, CJK и эмодзи?
Сначала символ преобразуется в байты UTF-8, затем каждый байт записывается как %XX. Буква с диакритикой обычно занимает две пары, эмодзи — четыре; декодирование точно восстанавливает символ.
Нужно ли кодировать весь URL как компонент?
Нет. Это экранирует двоеточие, косые черты и вопросительный знак, составляющие структуру адреса. Для полного адреса используйте полный URL, а компонент — только для отдельных значений.
Отправляются ли вставленные данные на сервер?
Нет. Преобразование полностью выполняется в браузере встроенными функциями JavaScript encodeURIComponent, encodeURI и decodeURIComponent. URL с токенами, идентификаторами сеансов и закрытыми путями не покидают устройство.