0x1.前页

前后台传参尤其是ajax异步处理的时候,有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。 如果不使用转义字符,这些编码就会当URL中定义的特殊字符处理。

0x2.下面整理出来一些URL特殊符号及编码 十六进制值

1. + URL 中+号表示空格 %2B 
2. 空格 URL中的空格可以用+号或者编码 %20 
3. / 分隔目录和子目录 %2F 
4. ? 分隔实际的 URL 和参数 %3F 
5. % 指定特殊字符 %25 
6. # 表示书签 %23 
7. & URL 中指定的参数间的分隔符 %26 
8. = URL 中指定参数的值 %3D
9. \ 本身转义字符处理为\\即可

0x3.解决办法:

0x3.1.正则替换

 function URLencode(sStr){
             return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F').replace(/\#/g,'%23');
           }

0x3.2.可以采用javascript的编码方法:

1.escape - 采用ISO Latin字符集对指定的字符串进行编码。不会被此方法编码的字符: @*/+ 2.encodeURI - 把URI字符串采用UTF-8编码格式转化成escape格式的字符串不会被此方法编码的字符:!@#$&*()=:/;?+' 3.encodeURIComponent - 把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:!*()'