Лично я считаю, что многие API-интерфейсы хотят заменить «" на «+», поэтому я использую следующее:
encodeURIComponent(value).replace(/%20/g,'+');
escape
реализовано по-разному в разных браузерах, а encodeURI
t кодирует большинство символов, которые являются функциональными в URI (например, # и даже /) - это делается для использования на полном URI / URL-адресе, не нарушая его.
ПРИМЕЧАНИЕ. Вы используете encodeURIComponent для значения строки запроса (не имена полей / значений и определенно не весь URL). Если вы сделаете это любым другим способом, он не будет кодировать символы типа =,?, & Amp ;, возможно, оставив вашу строку запроса открытой.
Пример:
const escapedValue = encodeURIComponent(value).replace(/%20/g,'+');
const url = 'http://example.com/?myKey=' + escapedValue;