最近做jquery+ajax请求时遇到了乱码问题,服务器和页面都是GBK,但是jquery ajax的contentType默认为utf-8,传过去是乱码.网上都说可以设置contentType的值,但是我设置了根本没有用.firebug里面Content-Type一直都是utf-8.有哪位高手可以高手我怎么解决呢?我用的是struts2
3 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
设置contentType这种做法是不行的.不管你怎么设置,最后传到服务器的都是utf-8...因为ajax在发送数据前会自动进行一次encodeURLComplent,这个方法是按utf-8格式编码的.jquery ajax乱码一般有以下几种方案,不知道能不能成功..1.配置struts2默认编码为utf-8 2.如果默认编码不能改为utf-8,可以写一个过滤器,如果请求为ajax请求,则request.setContentType("utf-8"); 3.更改jquery ajax底层代码,这个你可以网上搜一下. 4.这个方法比较普遍,二次转码.就是说中文数据可以在页面encodeURI两次,记住是两次,然后服务器端解码.
慕田峪9158850
TA贡献1794条经验 获得超7个赞
设置一下编码就行了 如: $.ajax({url:'url',type:'POST',dataType:'json',contentType:'GBK'}) 设置contentType就行了 注意如果带中文 不能使用get请求要使用post请求
莫回无
TA贡献1865条经验 获得超7个赞
后台的response需要设置
response.setContentType("text/html");
response.setCharacterEncoding("GB2312");
response.getWriter().print(strBuf.toString());
添加回答
举报
0/150
提交
取消