jquery ajax用post提交 返回的json中文乱码怎么解决,百度了各种编码手段还是没解决

------解决思路----------------------
json数据是自己拼接的,还是从数据库中取到的啊?
------解决思路----------------------
读出来在post返回的方法里打断点看一下乱码了没有!
------解决思路----------------------
用chrome访问一下
再F12看一下
response headers里面的编码
e.g Content-Type:text/html; charset=utf-8
与服务端输出的时候编码是否一致
------解决思路----------------------
PrintWriter out=response.getWriter();
out.write(json.toString());
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
的
out.write(json.toString());放在 设置编码之后试试看
PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
out.write(json.toString());
------解决思路----------------------
$(document).ready(function(){
$.ajax({
url:'getTopNum',
type:'post',
contentType: "application/x-www-form-urlencoded;charset=utf-8",
dataType:'Json',
success:function(msg){
//获取json返回数据
var jsonText = JSON.stringify(msg);//获取传来的字符串
var a=eval('('+jsonText+')');//乱码
直接alert(msg.job1);看看是什么;
在按4楼说的检查检查!
------解决思路----------------------
你在web.xml中配置encodingFilter,不知道你用的是什么框架,如果没有用框架就自己写个Filter
这是spring的
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
------解决思路----------------------
不是这种原因吗?
那么你 浏览器F12看看 network中 的头信息是什么?〉