JQuery ajax获取JSON数据出现乱码

来源:互联网 发布:网络推广和运营 编辑:程序博客网 时间:2024/04/29 17:52

最近一段时间一直在学习JQuery,当学习到插件这一章时,下载了一个用于菜单导航的插件,里面的菜单项想改成中文并保存到JSON文件中,于是写了一段格式JSON文件,利用Jquery ajax方法从JSON文件中获取数据,获取方法如下:

$.ajax({

url:"data/MenuInfo.json",
type:"post",
dataType:"json", 
success:function(data){
$.each(data, function(key, menuInfo){
alert(menuInfo["desc"]);
})
}

});

但是获取到的菜单选项是乱码,在网上查询了一下说是需要设置contentType: "application/x-www-form-urlencoded; charset=UTF-8",于是设置了一下,但是还是没有作用,并且查看Jquery API说是,这个属性是默认值,不设置也没有关系,也试过将html文件设置为GBK或gb2312,但是同样还是没有作用。于是也考虑过是不是Tomcat编码的影响呢?但是其他页面没有出现这个问题啊,当时感到这个问题无从下手,打算暂时先把这个问题放一下吧。到了第二天再次查看这个问题时突然想起来一个问题,是不是JSON文件本身的编码格式问题呢?于是查询了一下JSON文件中文显示正常和不正常的编码格式,果不其然,这两个文件的格式不同。于是修改JSON文件的编码格式为UTF-8,再次访问时,就正常了。

由此我得出两个结论:1、一个问题如果确实想不到解决方法的话,可以暂时放一下,过一段时间再去想,或许就会柳暗花明了

2、网上说的答案未必符合你现在遇到的问题情境,要试着从你遇到的问题着手,不止要考虑html文件的格式,也要考虑数据源文件的编码格式,要保证这个数据流编码格式的正确一致,你得到的答案才会一致

0 0
原创粉丝点击