url参数中有+、空格、=、%、&、#等特殊符号的处理
url参数中有+、空格、=、%、&、#等特殊符号的问题解决?
解决办法:
将这些字符转化成服务器可以识别的字符,对应关系如下:
URL字符转义
+ URL 中+号表示空格 %2B
空格 URL中的空格可以用+号或者编码 %20
/ 分隔目录和子目录 %2F
? 分隔实际的URL和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& URL 中指定的参数间的分隔符 %26
= URL 中指定参数的值 %3D
encodeURI()、encodeURIComponent()、escape()的区别
1)encodeURI():
a>主要用于整个URI
b>对空格进行编码
c>不会对本身属于URI的特殊字符进行编码,例如!,#,$,&,',(,),*,
+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z 共82个
2)encodeURIComponent():
a>主要用于URI中的某一段
b>会对发现的任何非标准字符进行编码
c>不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
3)escape():
a>不会对 ASCII 字母和数字进行编码,
b>不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . /
c>其他所有的字符都会被转义序列替换。
d>ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。
总结:url参数中有+、空格、=、%、&、#等特殊符号的处理,推荐用:encodeURIComponent()