Перейти к основному содержимому

Как закодировать строку для URL

Процентное кодирование заменяет каждый небезопасный для URL символ на % и шестнадцатеричное значение каждого из его байтов UTF-8. Режим «Компонент» с encodeURIComponent() подходит для одного значения параметра запроса или сегмента пути.

Разобранный пример

СимволБайты UTF-8Компонент
␠%20%20
&%26%26
=%3D%3D
/%2F%2F
?%3F%3F
é%C3 %A9%C3%A9
😀%F0 %9F %98 %80%F0%9F%98%80

Режим «Компонент» кодирует всю фразу в одно безопасное значение.

Ввод
rock & roll/size=XL? café 😀
Результат · encodeURIComponent()
rock%20%26%20roll%2Fsize%3DXL%3F%20caf%C3%A9%20%F0%9F%98%80

Режим «Полный URL» оставляет & = / ? без изменений, поэтому применяйте его только к целому URL.

Ввод
rock & roll/size=XL? café 😀
Результат · encodeURI()
rock%20&%20roll/size=XL?%20caf%C3%A9%20%F0%9F%98%80

Как это обрабатывает инструмент

  • Буквы A–Z и a–z, цифры 0–9 и символы - _ . ! ~ * ' ( ) никогда не изменяются.
  • Любой другой символ преобразуется в байты UTF-8, и каждый байт записывается как % и две заглавные шестнадцатеричные цифры: é занимает два байта, большинство эмодзи — четыре.
  • Режим «Компонент» также кодирует зарезервированные символы : / ? # [ ] @ & = + $ , ; чтобы они не могли изменить структуру URL.

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