处理XMLHTTP请求参数中的加号

web请求参数中加号会被自动转换为空格,造成专递base64数据出错,解决办法使用一下这个函数将被传递参数进行转义即可;

 

function encodeURL(sStr) {
return escape(sStr).replace(/\+/g, '+').replace(/\"/g,'"').replace(/\'/g, ''').replace(/\//g,'/'); 
}  

 

javascript中要传递把加号作为一个参数比如:+中国,传递给后台来接受。貌似不行嘞!不信你就试一下。肯定是把+替换成了空.怎么处理呢?

【1】:通过正则表达式

var key = "+中国";

var reg = /\+/g;

key = key.replace(key,"@");

然后再在后台处理下就ok了。示例:String keyword = request.getParamter("key").replaceAll("\\+","");

【2】:通过base64 编码中使用了加号(+),而 + 在 URL 传递时会被当成空格,因此必须要将 base64 编码后的字符串中的加号替换成 + 才能当作 URL 参数进行传递。否则在服务器端解码后就会出错。

encodeURIComponent(url).

后台中用java.net.URLEncoder.encode(s, enc);其中第一个参数代表要转码的String,第二个参数代表是什么编码。

有话要说