URL-кодирование онлайн — кодер и декодер URL
Процентное кодирование и декодирование URL с поддержкой Unicode и эмодзи
Работает в браузере · файлы никуда не загружаются
Что это
В URL без изменений могут стоять только латинские буквы, цифры и несколько символов. Всё остальное — кириллица, пробелы, эмодзи — превращается в байты UTF-8, и каждый байт записывается как % и две шестнадцатеричные цифры. Это и есть процентное кодирование. Инструмент показывает закодированный или декодированный результат по мере ввода.
Как пользоваться
- Выберите «Кодировать» или «Декодировать».
- Выберите область: encodeURIComponent для одного значения параметра, encodeURI для целого URL.
- Вставьте текст или URL — результат появится сразу.
- При декодировании данных форм отметьте параметр «Считать + пробелом».
- Скопируйте результат или нажмите «Перенести результат во ввод», чтобы проверить обратное преобразование.
Как это работает
- Работу выполняют встроенные функции браузера
encodeURIComponent,encodeURI,decodeURIComponentиdecodeURIпо правилам RFC 3986. - Сначала текст превращается в байты UTF-8. Буква кириллицы занимает 2 байта, поэтому даёт две группы
%XX; китайский иероглиф — 3 байта, эмодзи — 4. - Без кодирования остаются символы
A-Z a-z 0-9 - _ . ! ~ * ' ( ). encodeURI также оставляет; , / ? : @ & = + $ #. - Непарный суррогатный символ закодировать нельзя — об этом сообщается ошибкой.
- Неудачное декодирование никогда не «исправляется» молча: вместо этого выводится сообщение об ошибке.
Примеры
| Ввод | Режим | Результат |
|---|---|---|
a b&c=d |
Компонент | a%20b%26c%3Dd |
привет |
Компонент | %D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82 |
👍 |
Компонент | %F0%9F%91%8D |
https://example.com/поиск?q=a b |
Весь URL | https://example.com/%D0%BF%D0%BE%D0%B8%D1%81%D0%BA?q=a%20b |
Частые вопросы
Чем encodeURIComponent отличается от encodeURI?
encodeURIComponent предназначен для отдельной части, например значения параметра, поэтому кодирует и разделители / ? & = и #. encodeURI предназначен для целого URL и оставляет эти разделители как есть.
Почему возникает ошибка декодирования?
После % должны идти две шестнадцатеричные цифры, а полученные байты должны образовывать корректный UTF-8. Проверьте, не обрезана ли строка посередине и нет ли в тексте неэкранированного символа %.
Пробел — это %20 или +?
В пути URL пробел записывается как %20. Знак + означает пробел только в кодировке HTML-форм (application/x-www-form-urlencoded). Для таких данных включите при декодировании параметр с плюсом.
Отправляется ли мой URL на сервер?
Нет. Всё происходит в браузере.