Как работает URL Encoding (Процентное кодирование)?
Спецификация RFC 3986 разрешает использование в адресах URL только ограниченного набора символов ASCII (латинские буквы, цифры и спецсимволы -_.~). Все остальные символы, включая буквы русского алфавита, пробелы, кавычки и амперсанды, заменяются последовательностью %XX, где XX — шестнадцатеричный код байта в кодировке UTF-8.
encodeURIComponent vs encodeURI:
encodeURIComponent экранирует абсолютно все специальные знаки, включая слэши /, двоеточия : и знаки вопроса ?. Этот режим необходим при передаче URL или параметра внутрь другого запроса. encodeURI оставляет структуру адреса нетронутой.
Типовые замены:
- Пробел →
%20или+ - Амперсанд
&→%26 - Знак вопроса
?→%3F - Русская буква «А» →
%D0%90