最近在使用$http獲取json數據的時候,發現中文部分會出現亂碼,經過查找和調試,終于找到了解決辦法。
首先我們需要了解一下什么是編碼(Encoding),在計算機科學中,編碼是一種將一種特定的字符集合映射到另一種字符集合的方法。在http通信過程中,數據傳輸需要使用編碼方式來轉換字符集。
而$http獲取的json數據默認使用的是UTF-8編碼,如果服務端返回的數據編碼方式不是UTF-8,就會出現中文亂碼的情況。
var config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
},
transformRequest: function(obj) {
var str = [];
for(var p in obj){
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
}
return str.join("&");
}
};
$http.post(url, data, config).then(function(response) {
console.log(response.data);
});
上面的代碼中,我們通過設置請求頭的方式,以及使用transformRequest方法將發送的數據對象進行編碼轉換,將數據轉換成UTF-8的編碼方式,從而避免了中文亂碼的問題。
總之,在使用$http獲取json數據的時候,一定要注意數據編碼格式,以及通過合適的方法進行轉換,保證數據的準確傳輸和正確顯示。
上一篇用css如何設置靠左
下一篇mysql中的長數據類型