DevToolPal
RU

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

Процентное кодирование текста для безопасного использования в URL и query-строках или декодирование последовательностей %XX обратно в текст.

Работает локально, без загрузки на сервер

Параметры

Режим
Кодировать

Ввод

Символов: 0 · 0 B

Результат

Символов: 0 · 0 B

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

URL-кодирование, или процентное кодирование (percent-encoding), заменяет символы, которые недопустимы в URL или имеют в нём особое значение, на % и две шестнадцатеричные цифры. Пробел становится %20, амперсанд — %26, а текст не в ASCII, например 中文, сначала переводится в байты UTF-8, и затем каждый байт записывается как %XX.

Этот инструмент кодирует текст, чтобы его можно было безопасно вставить в query-строку, сегмент пути или API-запрос, и декодирует обратно в читаемый текст строки с процентным кодированием, скопированные из логов, адресной строки браузера или HTTP-трассировок.

Как пользоваться

  1. Вставьте текст или URL в поле Ввод либо нажмите Пример.
  2. Выберите Кодировать или Декодировать.
  3. При кодировании выберите Компонент, чтобы закодировать одно значение (например, поисковый запрос), или Весь URL, чтобы сохранить :, /, ?, & и = нетронутыми.
  4. Включите Пробел как + для данных HTML-форм и Каждую строку отдельно, чтобы обработать сразу список значений.
  5. Скопируйте или скачайте результат. Если декодирование не удалось, ошибка укажет позицию сломанной escape-последовательности.

Пример

Кодирование поискового запроса hello world & more как компонента даёт:

hello%20world%20%26%20more

Декодирование q=%E4%BD%A0%E5%A5%BD даёт q=你好.

Когда что использовать

  • Собираете query-строку вручную: кодируйте каждое значение как компонент, затем соединяйте их через & и =.
  • Приводите в порядок полную ссылку с пробелами или китайскими символами: используйте Весь URL, чтобы сохранить структуру ссылки.
  • Читаете логи сервера: декодируйте с включённым Пробел как +, потому что многие серверы записывают данные форм именно в этом формате.

Частые вопросы

› Чем отличаются «Компонент» и «Весь URL»?

«Компонент» кодирует все зарезервированные символы, включая / ? & = и #, поэтому результат можно безопасно поместить в один параметр запроса или сегмент пути. Это соответствует encodeURIComponent в JavaScript. «Весь URL» оставляет эти символы, чтобы адрес по-прежнему работал как ссылка, что соответствует encodeURI.

› Пробел должен становиться %20 или +?

Используйте %20 для путей и большинства API. + используйте только для данных HTML-форм (application/x-www-form-urlencoded) — именно так браузеры отправляют форму. Для этого случая включите «Пробел как +».

› Почему при декодировании появляется "not valid UTF-8"?

Байты %XX не образуют полный символ UTF-8 — обычно потому, что текст обрезан посередине многобайтового символа или был закодирован в устаревшей кодировке, например GBK или Latin-1.

› Отправляются ли мои данные на сервер?

Нет. Кодирование и декодирование полностью выполняются в вашем браузере.