引用一段解释:
请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
然后再来一段代码演示:
document.write(encodeURIComponent("http://www.w3school.com.cn/My first/")+ "<br />");
document.write(encodeURI("http://www.w3school.com.cn/My first/")+ "<br />");
输出结果:
http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2F
http://www.w3school.com.cn/My%20first/
看到了吧,简单的说就是 encodeURIComponent() 会将“/“这种分隔符也一起转义掉,而 encodeURI() 则不会。
参考: