0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Настройка
Кодируйте и декодируйте текстовые строки для безопасного использования в URL-адресах. Компонент кодирует все зарезервированные символы — идеально подходит для значений параметров query. Полный URL сохраняет структуру URL (схему, черточки, знаки вопроса). Используйте + для пробелов в HTML-формах (application/x-www-form-urlencoded).
Операция
Алкаш
Пространства
0

Как это работает

URL-кодирование (процентное кодирование) заменяет символы, которые не могут появляться в адресе буквально, последовательностями %XX со значением их байта. Например, пробел становится %20.

Область «Компонент» также экранирует зарезервированные символы (= & / ? #): используйте её для значения параметра. «Полный URL» сохраняет структуру адреса: используйте её для целого URL.

В HTML-формах пробел кодируется как + (application/x-www-form-urlencoded); во всех остальных случаях используется %20 согласно стандарту RFC 3986.

Примеры

hola mundo & máshola%20mundo%20%26%20m%C3%A1sСимвол «&» экранируется (%26), чтобы не спутать его с разделителем параметров; «á» кодируется в UTF-8 (%C3%A1).
a=1&b=2a%3D1%26b%3D2
https://sitio.com/á b?x=1 2URL completa: https://sitio.com/%C3%A1%20b?x=1%202В режиме «Полный URL» сохраняются ://, / и ?; экранируется только то, что нарушило бы адрес.

Сценарии использования

  • Собирать параметры запроса безопасно при ручном построении URL.
  • Кодировать значения, содержащие &, =, пробелы или диакритику, перед отправкой в GET-запросе.
  • Декодировать URL, чтобы прочитать, какие значения несёт каждый параметр.
  • Подготовить тела application/x-www-form-urlencoded для отправки форм.

Часто задаваемые вопросы

В чём разница между «Компонент» и «Полный URL»?

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

Когда для пробела используется +, а когда %20?

Символ + применяется только в теле форм (application/x-www-form-urlencoded). В остальной части URL стандарт для пробела — %20.

Почему «á» превращается в %C3%A1, а не в один %XX?

Потому что он кодируется в UTF-8: символы вне ASCII занимают несколько байт, и каждый байт представлен своей последовательностью %XX.

Делает ли кодирование URL его безопасным?

Нет. Оно лишь делает его корректным на уровне синтаксиса. Это не шифрование и никак не защищает содержимое.