1.概念
URI: Uniform ResourceIdentifiers,通用资源标识符
Global对象的encodeURI()和encodeURIComponent()方法可以对URI进行编码,以便发送给浏览器。有效的URI中不能包含某些字符,例如空格。而这URI编码方法就可以对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字 符,从而让浏览器能够接受和理解。
2、encodeURIComponent
encodeURIComponent 转义除了字母、数字、(、)、.、!、~、*、’、-和_之外的所有字符(可看下表的非转义字符更清晰)。
注意:为了避免服务器收到不可预知的请求,对任何用户输入的作为URI部分的内容你都需要用encodeURIComponent进行转义。
3、encodeURI
encodeURI 会替换所有的字符,但不包括以下字符,即使它们具有适当的UTF-8转义序列:
注意:encodeURI 自身无法产生能适用于HTTP GET 或 POST 请求的URI,例如对于 XMLHTTPRequests, 因为 “&”, “+”, 和 “=” 不会被编码,然而在 GET 和 POST 请求中它们是特殊字符。故因采用encodeURIComponent这个方法会对这些字符编码。
4、区别
其中encodeURI()主要用于整个URI(例如