前端部分,
encodeURIComponent编码要传递的url
var send_data={'name':'2123##%&+212'}
url: g_url+ "goods/add/data/" + encodeURIComponent(encodeURIComponent(JSON.stringify(send_data))),
后端接受需要URLDecoder
String s = new String(request.getParameter("name").getBytes("ISO8859-1"), "UTF-8");
或者前端两次编码
JavaScript:
url : "searchbytext.action?send_data="+encodeURIComponent(encodeURIComponent(send_data));
为什么要两次编码的原因:后台java代码给send_data赋值的时候,本身已经使用了一次解码,不过解码的结果依然不对。所以我们可以在页面上进行两次编码操作,这样后台自动的那次就可以抵消掉一次,然后在使用send_data=java.net.URLDecoder.decode(send_data,”UTF-8”);进行一次解码就好了。
send_data=java.NET.URLDecoder.decode(send_data,"UTF-8");