天天看點

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檔案的格式,也要考慮資料源檔案的編碼格式,要保證這個資料流編碼格式的正确一緻,你得到的答案才會一緻