URL encoder/decoder

Кодирование и декодирование URL (percent-encoding)

Нашли ошибку или хотите предложить улучшение?

Улучшить калькулятор «URL encoder/decoder»

Теория

URL-кодирование заменяет недопустимые в адресе символы на последовательность \(\texttt{%XX}\), где XX — шестнадцатеричный код байта. Пробел превращается в \(\texttt{%20}\), амперсанд — в \(\texttt{%26}\). Буквы, цифры и некоторые знаки остаются как есть.

Кодирование нужно, когда в адрес попадают русский текст, пробелы или служебные символы \(\texttt{? & = #}\): без него браузер и сервер разобрали бы их как часть структуры URL. Декодирование выполняет обратную замену.

Важно: в пути адреса пробел кодируется как \(\texttt{%20}\), а в query-строке встречается и форма \(\texttt{+}\) — это разные соглашения.

Пример с решением

  1. Условие. Закодируйте строку «a b&c» для URL.
  2. Формула. Недопустимые символы → \(\texttt{%XX}\) по коду байта.
  3. Подстановка. Пробел — 0x20, амперсанд — 0x26.
  4. Вычисление. «a» + \(\texttt{%20}\) + «b» + \(\texttt{%26}\) + «c».
  5. Ответ. «a%20b%26c». Калькулятор с этой строкой покажет тот же результат; декодирование вернёт исходный вид.

Главное

  • Недопустимые символы → \(\texttt{%XX}\).
  • Служебные знаки \(\texttt{? & = #}\) обязательно кодировать в данных.
  • Декодирование — обратная замена.