Перейти к содержимому
ToolMug

URL-кодировщик и декодировщик

URL-кодирование онлайн — закодируйте текст для использования в ссылке, раскодируйте строки с %-последовательностями обратно в читаемый вид и посмотрите, из каких частей и параметров запроса состоит любой URL. Можно кодировать отдельный параметр, весь URL или данные HTML-формы.

Работает в браузере — введённые данные никуда не загружаются

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

  1. Выберите «Кодировать» или «Декодировать».
  2. Выберите режим — «Компонент» для значения отдельного параметра, «URL целиком», чтобы сохранить структуру адреса, или «Форма» для данных HTML-формы, где пробелы превращаются в +.
  3. Вставьте текст. Результат обновляется по мере ввода.
  4. Если вы ввели URL, ниже будут показаны его протокол, хост, путь и параметры запроса.

Описание параметров

Компонент
Кодирует всё, кроме букв, цифр и символов - _ . ~ — используйте для значения параметра запроса или сегмента пути. Соответствует encodeURIComponent, дополнительно кодируя ! ' ( ) *, которые зарезервированы в RFC 3986.
URL целиком
Не трогает символы, задающие структуру URL (: / ? # & =), и кодирует пробелы и символы вне ASCII. Соответствует encodeURI в JavaScript.
Форма
Формат application/x-www-form-urlencoded, который используют HTML-формы. Пробелы превращаются в + вместо %20; при декодировании + снова становится пробелом.

Примеры

Ввод Компонент URL целиком Форма
a b&c a%20b%26c a%20b&c a+b%26c
café caf%C3%A9 caf%C3%A9 caf%C3%A9
https://x.com/?q=1 2 https%3A%2F%2Fx.com%2F%3Fq%3D1%202 https://x.com/?q=1%202 https%3A%2F%2Fx.com%2F%3Fq%3D1+2

Как собрать URL с параметрами

Если вы подставляете в строку запроса пользовательский ввод, кодируйте каждое значение отдельно:

const url = `https://example.com/search?q=${encodeURIComponent(query)}&page=2`;

Если закодировать весь URL в конце, символы & и = внутри значения останутся незакодированными и сломают параметры.

Часто задаваемые вопросы

Чем отличаются %20 и +?

Оба могут обозначать пробел, но в разных местах. %20 работает в любой части URL, а + означает пробел только в строке запроса при отправке формы. В пути + — это обычный знак плюса.

Почему текст закодирован дважды (%2520)?

Его закодировали два раза — знак % из %20 сам был закодирован как %25. Декодируйте строку дважды, а в своём коде убедитесь, что значение кодируется только на одном уровне.

Когда использовать encodeURI, а когда encodeURIComponent?

Используйте encodeURIComponent (режим «Компонент») для каждого значения параметра, которое вы подставляете в URL. encodeURI («URL целиком») подходит только для полного адреса, в котором могут быть пробелы или символы вне ASCII.

Что означает «некорректное процентное кодирование»?

После знака % не идут две шестнадцатеричные цифры, или байты не образуют корректную последовательность UTF-8. В сообщении об ошибке указана позиция первой неверной последовательности.

Как кодируются кириллица и китайские иероглифы в URL?

Каждый символ переводится в байты UTF-8, и каждый байт записывается как %XX. Например, иероглиф 中 превращается в %E4%B8%AD, а буква «я» — в %D1%8F.

Конфиденциальность

Этот инструмент работает полностью в браузере. Ваши файлы и текст обрабатываются на вашем устройстве и никогда не загружаются на наши серверы.

Похожие инструменты