在项目中发现,decodeURI无法对传入的URL解码
原因:该URL是由escape做的编码,必须改用encodeURI对其编码,才能被decodeURI解码
三者的区别之一:
1.各自排除编码的字符不同
escape() will not encode: @*/+
encodeURI() will not encode: ~!@#$&*()=:/,;?+'
encodeURIComponent() will not encode: ~!*()'
2.编码结果不同(http://en.wikipedia.org/wiki/Percent-encoding)
escape('王') = %u738B 是非标准Pecent-encoding, 现在已经没有标准支持(建议避免使用该方法)
encodeURI('王') = %E7%8E%8B 是标准
3.解码的方式不同
escape()只能使用unescape()来解码
encodeURI() 只能使用decodeURI()解码
参考: