El método escape () no codifica el carácter + que se interpreta como un espacio en el lado del servidor, así como generado por formularios con espacios en sus campos. Debido a esta deficiencia y al hecho de que esta función no puede manejar correctamente los caracteres que no son ASCII, debe evitar el uso de escape () siempre que sea posible. La mejor alternativa suele ser encodeURIComponent ().
escape () no codificará: @ * / +
El uso del método encodeURI () es un poco más especializado que escape (), ya que codifica los URI en lugar de la cadena de consulta, que es parte de una URL. Use este método cuando necesite codificar una cadena para usarla en cualquier recurso que use URI y necesite que ciertos caracteres permanezcan sin codificar. Tenga en cuenta que este método no codifica el carácter ', ya que es un carácter válido dentro de los URI.
encodeURI () no codificará: ~! @ # $ & * () =: /,;? + '
Por último, el método encodeURIComponent () debe usarse en la mayoría de los casos al codificar un solo componente de un URI. Este método codificará ciertos caracteres que normalmente se reconocerían como caracteres especiales para los URI para que se puedan incluir muchos componentes. Tenga en cuenta que este método no codifica el carácter ', ya que es un carácter válido dentro de los URI.
encodeURIComponent () no codificará: ~! * () '