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