URL-кодировщик и декодировщик
Кодируйте текст для URL и строк запроса, декодируйте закодированные URL и разбирайте любой URL на части с декодированными параметрами запроса.
Работает в браузереБез регистрацииНичего не загружается
Компоненты
Параметры запроса
Как пользоваться: URL: кодирование / декодирование
- Выберите Кодировать или Декодировать.
- При кодировании выберите Компонент для отдельного значения параметра или сегмента пути, Полный URL, чтобы сохранить структуру URL, или Данные формы для
application/x-www-form-urlencoded. - Вставьте текст. Результат появляется мгновенно; некорректные escape-последовательности сообщаются с их позицией.
- Вставьте полный URL в Парсер URL, чтобы увидеть хост, путь, фрагмент и каждый декодированный параметр запроса.
Что такое URL-кодирование?
URL может содержать только ограниченный набор символов ASCII (RFC 3986). Всё остальное, включая пробелы, нелатинские буквы и символы с особым значением вроде &, ? и #, записывается как знак процента и две шестнадцатеричные цифры для каждого байта UTF-8. Пробел становится %20, а é — %C3%A9.
encodeURIComponent или encodeURI
| Функция | Не трогает | Для чего |
|---|---|---|
encodeURIComponent | A-Z a-z 0-9 - _ . ~ | Отдельное значение параметра, сегмент пути или имя параметра |
encodeURI | Также : / ? # [ ] @ ! $ & ' ( ) * + , ; = | Целый URL, структура которого должна сохраниться |
Использовать encodeURI для значения параметра — классическая ошибка: & внутри значения не экранируется и разбивает параметр на два. Режим «Компонент» в этом инструменте также экранирует ! ' ( ) * для строгого соответствия RFC 3986.
%20 или + для пробелов?
В путях пробел должен быть %20. В отправке HTML-форм (application/x-www-form-urlencoded) и многих строках запроса пробел записывается как +. При декодировании включайте Считать + пробелом для данных форм и отключайте, если важен буквальный плюс, например в jane+test@example.com.
Часто задаваемые вопросы
Почему при декодировании появляется «Некорректная escape-последовательность»?
% должны идти ровно две шестнадцатеричные цифры. Буквальный знак процента, как в «скидка 50%», должен быть закодирован как %25. Ошибка показывает позицию неверной последовательности.Что означает «Некорректная последовательность байтов UTF-8»?
%E9 для é вместо %C3%A9), или строка обрезана посреди символа.Кодировать весь URL или только параметры?
= и &. Если закодировать полный URL в режиме компонента, экранируется и ://, и URL сломается.Двойное кодирование — это проблема?
%20 в %2520. Если вы видите %25 и затем hex-цифры, значение, скорее всего, закодировано дважды. Декодируйте его два раза, чтобы получить оригинал.