您的位置:首页 > 编程语言 > Java开发

ajax或url传值之乱码再见

2016-02-16 15:50 363 查看
在工作中遇到几次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编码就行了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java