Кодирование и декодирование параметров URL
Процентное кодирование заменяет специальные символы: пробел становится %20, а 中 сначала кодируется в UTF-8, затем в %E4%B8%AD. Декодирование выполняет обратное действие. Вычисления происходят локально в браузере.
Ссылки для публикации и адреса обратного вызова
Некодированные &, = и пробелы могут нарушить структуру параметров ссылки. Декодирование помогает читать поисковые запросы в аналитике и журналах. Неправильно закодированный параметр также может стать причиной HTTP 400.
Процентное кодирование, пробелы и специальные символы
encodeURIComponent кодирует / : ? & = и подходит для значений параметров; encodeURI сохраняет структуру целого URL. Неверный выбор может повредить ссылку или вызвать двойное кодирование. В данных формы + означает пробел, тогда как в обычном процентном декодировании он остаётся плюсом.
Кодирование использует encodeURIComponent и не экранирует !, апострофы, скобки и *. Это не строгая канонизация RFC 3986 для подписи запросов: сверяйтесь с требованиями API.
Кодировать весь URL или отдельное значение?
Кодируйте каждое значение отдельно. Кодирование целого URL изменяет : / ? и &. В режиме формы пробел превращается в + и обратно; процентный режим использует %20 и оставляет + без изменений при декодировании.