URI编码方法
在JavaScript中有两个为URI进行编码的方法,一个是encodeURI(),另一个是encodeURIComponent(),两者用于不同的地方
encodeURI()
用途:对整个URI进行编码,多用于整个URI
编码结果:将URI中的空格替换成%20
encodeURI("http://www.baidu.com");//"http://www.baidu.com"
encodeURI("http://www.baidu.com?hello world!");//"http://www.baidu.com?hello%20world!"
encodeURIComponent()
用途:对URI中的一段进行编码,多用于URI中的参数部分
编码结果:替换所有的非字母字符
encodeURIComponent("http://www.baidu.com");//"http%3A%2F%2Fwww.baidu.com"
encodeURIComponent("http://www.baidu.com?hello world!")//"http%3A%2F%2Fwww.baidu.com%3Fhello%20world!"
"http://www.baidu.com?name=" + encodeURIComponent('张三');//"http://www.baidu.com?name=%E5%BC%A0%E4%B8%89"
URI解码方法
与2个URI编码方法对应的方法有decodeURI()、decodeURIComponent()
decodeURI()
用途:将经过encodeUIR()方法编码后的URI还原
解码解果:将%20还原成空格
decodeURI("http://www.baidu.com?hello%20world!");//"http://www.baidu.com?hello world!"
decodeURIComponent()
用途:将经过encodeURIComponent的URI还原
解码结果:将非字母的字符还原
decodeURIComponent("%E5%BC%A0%E4%B8%89");//"张三"