BL2.ru

Онлайн urlencode, urldecode

Сервис онлайн преобразования urlencode urldecode позволит вам преобразовать нужную строку для использования в ссылках или, наоборот, строки, полученные из ссылки, привести к читаемому виду.

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

В адресе (URL) можно использовать только ограниченный набор символов ASCII. Всё остальное — пробелы, кириллица, спецсимволы — записывается через percent-encoding: каждый байт заменяется на знак % и две шестнадцатеричные цифры. Например, пробел — %20, & — %26.

Зарезервированные символы

Символы : / ? # [ ] @ ! $ & ' ( ) * + , ; = имеют в URL служебный смысл (разделяют схему, путь, параметры). Если такой символ — часть значения, его нужно закодировать: a&b=c/d? → a%26b%3Dc%2Fd%3F. Буквы, цифры и - _ . ~ не кодируются никогда.

Кириллица и UTF-8

Не-ASCII символы сначала переводятся в байты UTF-8, и кодируется каждый байт. Одна русская буква — 2 байта, то есть 6 символов:

Исходная строкаURL-encoded
Привет мир%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%20%D0%BC%D0%B8%D1%80
a b+c (в форме)q=a+b%2Bc
https://example.com/поиск?q=a bhttps://example.com/%D0%BF%D0%BE%D0%B8%D1%81%D0%BA?q=a%20b

+ или %20

Пробел кодируется двумя способами. В пути URL — только %20. В параметрах HTML-форм (application/x-www-form-urlencoded) — знаком +, а сам плюс тогда пишется как %2B. В PHP это разница между urlencode() (пробел → +) и rawurlencode() (пробел → %20).

encodeURIComponent и encodeURI

  • encodeURIComponent() — для отдельного значения (параметра, сегмента пути): кодирует и служебные символы / ? & =.
  • encodeURI() — для целого адреса: оставляет : / ? & = # как есть, кодирует только недопустимые символы.
  • Правило: значения параметров всегда кодируйте через encodeURIComponent, иначе символ & в значении «разорвёт» строку запроса.

Где пригодится

  • сборка ссылок с параметрами (UTM-метки, поисковые запросы, redirect_uri в OAuth);
  • чтение «нечитаемых» ссылок из логов, адресной строки и аналитики;
  • отладка API и форм, где значение пришло закодированным дважды (%2520 вместо %20).

Как пользоваться страницей

  • Введите текст в поле исходного текста — закодированная строка появится в поле результата.
  • Вставьте URL-encoded строку в поле результата — она раскодируется в читаемый вид.