JS escape()、encodeURI()和encodeURIComponent()的区别

1.实例说明:

    var url='http://wx.jnqianle.com/content/images/冰皮月饼.jpg?name=张三丰&age=11';
    console.info(window.escape(url));
    console.info(window.encodeURI(url));
    console.info(window.encodeURIComponent(url));

结果:

http%3A//wx.jnqianle.com/content/images/%u51B0%u76AE%u6708%u997C.jpg%3Fname%3D%u5F20%u4E09%u4E30%26age%3D11
http://wx.jnqianle.com/content/images/%E5%86%B0%E7%9A%AE%E6%9C%88%E9%A5%BC.jpg?name=%E5%BC%A0%E4%B8%89%E4%B8%B0&age=11
http%3A%2F%2Fwx.jnqianle.com%2Fcontent%2Fimages%2F%E5%86%B0%E7%9A%AE%E6%9C%88%E9%A5%BC.jpg%3Fname%3D%E5%BC%A0%E4%B8%89%E4%B8%B0%26age%3D11

注:

1.escape() 用于中文编码,但不能用于整个url字符串编码

2.encodeURI() 专门用户Uri编码中文处理,对于uri中的特殊字符比如冒号、问号、&符号不做处理

3.encodeURIComponent()  则是用于url的组成部分编码,不能用于整个url编码

更多,请参考:http://blog.163.com/m13864039250_1/blog/static/213865248201485112535345/

原文地址:https://www.cnblogs.com/tianma3798/p/5918840.html