JQuery ajax獲取JSON數據出現亂碼

最近一段時間一直在學習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文件的格式,也要考慮數據源文件的編碼格式,要保證這個數據流編碼格式的正確一致,你得到的答案纔會一致

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章