比较好的参考:http://www.ruanyifeng.com/blog/2010/02/url_encoding.html
JavaScript 中URL编码方式
其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是%5c。
Javascript存在几种url字符串的编码方式:escape(),encodeURI(),以及encodeURIComponent()。这几种编码方式所起的作用各不相同。
escap():采用IOS Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转换成%xx格式的字符编码(xx等于该字符在字符集编码的16进制数字)。比如,空格 %20。但是以下字符不会被此方法编码:@*/+
对应解密:unescape()
不提倡使用
encodeURI():把URI字符串采用UTF-8编码格式转换成escape格式的字符。以下字符不会被此方法编码:!@#$&*()=:;/?+'
encodeURIComponent():把URI字符串采用UTF-8编码格式转化成esc