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,第二个参数代表是什么编码。
有话要说