JS编码函数escape(),encodeURI() 和 encodeURIComponent()

escape(),encodeURI() 和 encodeURIComponent()的基本功能都是把 URI 非法字符转化成合法字符,即对字符串进行编码。

以上三者解码的函数为unescape(),decodeURI和 decodeURIComponent()。

 

escape可以达到类似URL Encode的效果,但是它对于非ASCII字符使用了一种非标准的的实现,例如汉字“编码”会被escape成%u7F16%u7801这种%uxxxx奇怪的表示,W3C把这个函数废弃了。

encodeURIencodeURIComponent的区别在于前者被设计来用于对完整URL进行URL encode,于是URL中的功能字符,比如&, ?, /, =等等这些并不会被转义;而后者被设计来对一个URL中的值进行转义,会把这些功能字符也进行转义。

例:

encodeURI('https://www.baidu.com/ a b c') 
// "https://www.baidu.com/%20a%20b%20c" 

encodeURIComponent('https://www.baidu.com/ a b c') 
// "https%3A%2F%2Fwww.baidu.com%2F%20a%20b%20c"

 

 



posted @ 2017-10-16 14:46  JOYZzzzz  阅读(198)  评论(0编辑  收藏  举报