Как закодировать строку для 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.