使用js在各个html页面之间传递参数的时候,有些特殊字符传过去再接收就会出现问题,最好的做法就是传递参数之前先编码,接收到之后再解码。搜集了一下常用的几个函数
1.escape
http://www.w3school.com.cn/jsref/jsref_escape.asp
2.encodeURI
http://www.w3school.com.cn/jsref/jsref_encodeuri.asp
3.encodeURIComponent
http://www.w3school.com.cn/jsref/jsref_encodeURIComponent.asp
找了一点关于他们区别的资料
escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。比如"春节"的返回结果是%u6625%u8282,,escape()不对"+"编码 主要用于汉字编码,现在已经不提倡使用。
encodeURI()是Javascript中真正用来对URL编码的函数。 编码整个url地址,但对特殊含义的符号"; / ? : @ & = + $ , #",也不进行编码。对应的解码函数是:decodeURI()。
encodeURIComponent() 能编码"; / ? : @ & = + $ , #"这些特殊字符。对应的解码函数是decodeURIComponent()。假如要传递带&符号的网址,所以用encodeURIComponent()
时间: 2024-10-13 17:37:59