Метод escape () не кодирует символ +, который
интерпретируется как пространство на стороне сервера, а также генерируется
формы с пробелами в своих полях. Из-за этого недостатка и
тот факт, что эта функция не может обрабатывать символы не ASCII
правильно, вы должны по возможности избегать использования escape ().
Лучшей альтернативой обычно является encodeURIComponent ().
escape () не будет кодировать: @ * / +
Использование метода encodeURI () немного более специализировано, чем escape ()
в том, что он кодирует для URI, в отличие от строки запроса, которая
часть URL. Используйте этот метод, когда вам нужно закодировать строку
используется для любого ресурса, который использует URI и нуждается в определенных символах для
остаются незашифрованными Обратите внимание, что этот метод не кодирует
символ, так как это допустимый символ в URI.
encodeURI () не будет кодировать: ~! @ # $ & * () =: /,;? + '
Наконец, метод encodeURIComponent () должен использоваться в большинстве случаев
при кодировании одного компонента URI. Этот метод будет кодировать
определенные символы, которые обычно распознаются как специальные символы для
URI, так что многие компоненты могут быть включены. Обратите внимание, что этот метод
не кодирует символ ', поскольку это допустимый символ в
URIs.
encodeURIComponent () не будет кодировать: ~! * () '