encodeURIComponent('中国人') ==>
"%E4%B8%AD%E5%9B%BD%E4%BA%BA"
encodeURI('中国人'); ==>
"%E4%B8%AD%E5%9B%BD%E4%BA%BA"
区别(参考资料--W3Cschool.com):
encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
encodeURIComponent(String)
不编码字符有 71 个: ! , ' , ( , ) , * , - , . , _ , ~ , 0-9 , a-z , A-Z 。
encodeURI()
不编码字符有 82 个: ! , # , $ , & , ' , ( , ) , * , + ,,, - , . , / , : , ; , = , ? , @ ,_ , ~ , 0-9 , a-z , A-Z 。
再看一例:
escape('http://127.0.0.1:8080/?debug=true&tn=中国人') ==>
"http%3A//127.0.0.1%3A8080/%3Fdebug%3Dtrue%26tn%3D%u4E2D%u56FD%u4EBA"
encodeURIComponent('http://127.0.0.1:8080/?debug=true&tn=中国人') ==>
"http%3A%2F%2F127.0.0.1%3A8080%2F%3Fdebug%3Dtrue%26tn%3D%E4%B8%AD%E5%9B%BD%E4%BA%BA"
反转
decodeURI('%E4%B8%AD%E5%9B%BD%E4%BA%BA') ==>
"中国人"
decodeURIComponent("%E4%B8%AD%E5%9B%BD%E4%BA%BA") ==>
"中国人"
escape('中国人') ==>
"%u4E2D%u56FD%u4EBA"