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

Кодируйте текст для URL и строк запроса, декодируйте закодированные URL и разбирайте любой URL на части с декодированными параметрами запроса.

Работает в браузереБез регистрацииНичего не загружается

Закодировано

Как пользоваться: URL: кодирование / декодирование

  1. Выберите Кодировать или Декодировать.
  2. При кодировании выберите Компонент для отдельного значения параметра или сегмента пути, Полный URL, чтобы сохранить структуру URL, или Данные формы для application/x-www-form-urlencoded.
  3. Вставьте текст. Результат появляется мгновенно; некорректные escape-последовательности сообщаются с их позицией.
  4. Вставьте полный URL в Парсер URL, чтобы увидеть хост, путь, фрагмент и каждый декодированный параметр запроса.

Что такое URL-кодирование?

URL может содержать только ограниченный набор символов ASCII (RFC 3986). Всё остальное, включая пробелы, нелатинские буквы и символы с особым значением вроде &, ? и #, записывается как знак процента и две шестнадцатеричные цифры для каждого байта UTF-8. Пробел становится %20, а é — %C3%A9.

encodeURIComponent или encodeURI

ФункцияНе трогаетДля чего
encodeURIComponentA-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»?
Байты были закодированы не в UTF-8, часто потому, что текст создан устаревшей системой с Latin-1 (например, %E9 для é вместо %C3%A9), или строка обрезана посреди символа.
Кодировать весь URL или только параметры?
Кодируйте каждое имя и значение параметра отдельно в режиме компонента, затем соединяйте их через = и &. Если закодировать полный URL в режиме компонента, экранируется и ://, и URL сломается.
Двойное кодирование — это проблема?
Да. Повторное кодирование уже закодированной строки превращает %20 в %2520. Если вы видите %25 и затем hex-цифры, значение, скорее всего, закодировано дважды. Декодируйте его два раза, чтобы получить оригинал.

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