在工作中遇到几次url乱码的问题,这次就做下整理:
$.ajax({ "contentType" : "application/json","url" :xxx/xxx/xxx.action?a=不要乱码&b=不要再次乱码,"dataType" : "json","success" : function(data) { //bootBox.alert('取消成功!',function(){}); hide("alert_cancel_reason_div"); location.reload(); } });后台通过 String a = this.getRequest().getParameter("a");
通过断点可以看到这个值变成了你看不懂的符号,就是乱码,怎么解决呢?
1.通过类似于加解码的方式
var url = encodeURI(encodeURI("xxx/xxx/xxx.action?a=不要乱码&b=不要再次乱码"))
2。后台通过一次解码的方式
String a= this.getRequest().getParameter("a"); a= java.net.URLDecoder.decode(a,"UTF-8");//一次解码
这样就可以通过断点看到中文了
同时从后台往前台传也会出现乱码,我借鉴了下网上的资料,这里补充下:
后台:
response.setContentType("text/xml;charset=UTF-8");AJAX 在接收responseText或responseXML的值的时候是按照UTF-8的格式来解码的,所以服务器要向客户端发送数据的时候,也要采用utf-8编码,response.setContentType("text/xml;charset=UTF-8").
如果上述方法仍然解决不了乱码问题,那你尝试一下把jsp,htm,java文件用UTF-8编码格式保存.总之,前后台数据交互都采用utf-8编码就行了.