Как пользоваться
- Выберите «Кодировать» или «Декодировать».
- Выберите режим — «Компонент» для значения отдельного параметра, «URL целиком», чтобы сохранить структуру адреса, или «Форма» для данных HTML-формы, где пробелы превращаются в +.
- Вставьте текст. Результат обновляется по мере ввода.
- Если вы ввели 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.
Конфиденциальность
Этот инструмент работает полностью в браузере. Ваши файлы и текст обрабатываются на вашем устройстве и никогда не загружаются на наши серверы.