Теория
URL-кодирование заменяет недопустимые в адресе символы на последовательность \(\texttt{%XX}\), где XX — шестнадцатеричный код байта. Пробел превращается в \(\texttt{%20}\), амперсанд — в \(\texttt{%26}\). Буквы, цифры и некоторые знаки остаются как есть.
Кодирование нужно, когда в адрес попадают русский текст, пробелы или служебные символы \(\texttt{? & = #}\): без него браузер и сервер разобрали бы их как часть структуры URL. Декодирование выполняет обратную замену.
Важно: в пути адреса пробел кодируется как \(\texttt{%20}\), а в query-строке встречается и форма \(\texttt{+}\) — это разные соглашения.
Пример с решением
- Условие. Закодируйте строку «a b&c» для URL.
- Формула. Недопустимые символы → \(\texttt{%XX}\) по коду байта.
- Подстановка. Пробел — 0x20, амперсанд — 0x26.
- Вычисление. «a» + \(\texttt{%20}\) + «b» + \(\texttt{%26}\) + «c».
- Ответ. «a%20b%26c». Калькулятор с этой строкой покажет тот же результат; декодирование вернёт исходный вид.
Главное
- Недопустимые символы → \(\texttt{%XX}\).
- Служебные знаки \(\texttt{? & = #}\) обязательно кодировать в данных.
- Декодирование — обратная замена.