Кодировщик/декодер URL

URL encode/decode и кодирование компонентов

URL encode/decode и кодирование компонентов
?
Ввод
Вывод

Описание инструмента

О Кодировщик/декодер URL

URL Encoder/Decoder превращает небезопасные или зарезервированные символы URL в текст с процентным кодированием и декодирует закодированные строки обратно в читаемый текст.

Он полезен для параметров запроса, неанглийских путей, адресов обратного вызова и фрагментов URL из логов. Все выполняется локально в браузере.

Как пользоваться URL Encoder/Decoder

  1. Вставьте полный URL, query значение параметра или текст, который нужно encode.
  2. Нажмите Encode, чтобы преобразовать пробелы, неанглийский текст и символы в безопасное процентное кодирование.
  3. Нажмите Decode, чтобы строки вроде %E4%B8%AD%E6%96%87 стали читаемый текст.
  4. Если нужно закодировать один parameter, кодируйте значение, а не весь строку запроса, чтобы & и = сохранили структуру.

Когда это полезно

  • Кодируйте поисковые запросы, адреса обратного вызова или параметры перенаправления перед вставкой в URL, чтобы &, ? и # не ломали параметр.
  • Декодировать percent-encoded пути или строки запроса из логов API.
  • Отлаживать двойное кодирование в OAuth redirect_uri, вебхуках или ссылках, которыми поделились.
  • Сравнить интерфейс encodeURIComponent вывод с тем, что реально получает сервер.

Процентное кодирование, параметры запроса и частые ошибки

Некоторые URL символы имеют структурное значение: ?, &, =, # и /. Процентное кодирование записывает байты как %HH, чтобы символы передавались как данные, а не разбирались как структура URL.

  • Пробелы: обычно %20; в кодировании форм может встречаться +.
  • Неанглийский текст и эмодзи: сначала кодируются как байты UTF-8, затем записываются процентными последовательностями.
  • encodeURI vs encodeURIComponent: encodeURI сохраняет структура URL символы; encodeURIComponent лучше для одного значение параметра.
  • Двойное кодирование: %25E4 часто означает, что существующий знак процента закодировали повторно.

Частые вопросы: Кодировщик URL

Кодировать весь URL или один parameter?
Обычно кодируют значение параметра. Кодирование всего URL также экранирует : / ? & и может нарушить parsing ссылки.
Почему space иногда %20, а иногда +?
%20 — это общее процентное кодирование. Знак + распространен в application/x-www-form-urlencoded.
Почему после декодирования остаются знаки процента?
Возможно, текст был закодирован дважды, или исходное значение содержит сам знак процента. Декодируйте ещё раз только если уверены в двойном кодировании.
Нужен ли URL-кодирование для URL-safe Base64?
Обычно меньше нужен, потому что нет + и /. Но перед строку запроса проверьте = padding и другие special символы.
Input отправляется на сервер?
Нет. Encoding и decoding выполняются локально в браузере и не отправляются на wetool.site.

URL-кодирование и Base64

URL-кодирование делает символы безопасными внутри URL. Base64 представляет байты как текст. Токены, изображения и двоичные данные могут использовать оба формата, но задачи разные.

encodeURI vs encodeURIComponent

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

  • Полный URL: семантика encodeURI сохраняет : / ? & = # как структуру и подходит для уже собранной ссылки.
  • Parameter значение: encodeURIComponent кодирует &, =, ? и #, подходит для search, redirect_uri, callback и похожих значений.
  • Правила форм: application/x-www-form-urlencoded часто пишет пробел как +; общее процентное кодирование обычно использует %20.

Чек-лист отладки URL-кодирования

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

  • %25 часто означает, что существующий знак процента был закодирован снова — вероятно двойное кодирование.
  • Если redirect_uri содержит собственный строку запроса, внутренние ?, & и = должны быть закодированы как data.
  • Не вставляйте декодированный пользовательский ввод напрямую в HTML или адреса перенаправления; используйте списки разрешённых протоколов и экранирование вывода.