Все руководства

Что такое процентное кодирование (URL-кодирование)?

Руководства по URL-кодированию

Изначально URL был рассчитан на передачу лишь ограниченного набора символов ASCII. Поместите пробел, не-латинскую букву или специальный символ вроде ? или & прямо в адрес — и разные браузеры или серверы могут истолковать его по-разному, либо адрес попросту сломается. Решение — процентное кодирование (percent-encoding), которое обычно и называют URL-кодированием.

Что означает %XX

Процентное кодирование заменяет небезопасный символ его байтовым значением в шестнадцатеричном виде с префиксом %. Пробел превращается в %20, вопросительный знак — в %3F. Символ, состоящий из нескольких байтов, как большинство не-латинских букв, получает по одному %XX на каждый байт UTF-8.

Почему UTF-8

Современный веб считает UTF-8 стандартом. Браузерная функция encodeURIComponent преобразует текст в байты UTF-8, а затем превращает каждый байт в %XX. Благодаря этому один и тот же символ всегда кодируется одинаково, а декодирование в точности восстанавливает исходный текст.

Инструмент кодирования/декодирования на этом сайте использует встроенные функции браузера, поэтому ваш ввод преобразуется мгновенно и никогда не отправляется на сервер.

Когда это нужно

Процентное кодирование требуется всякий раз, когда вы вставляете произвольную строку в часть адреса — ссылку с поисковым запросом, значение параметра query или целевой URL перенаправления, помещённый внутрь другого URL. Без кодирования символ & или = в значении может быть принят за разделитель и обрезать параметр.