最近我在使用Vue.js框架搭建前端頁面時遇到了一個問題,就是在使用Axios發(fā)送請求時,返回的數據出現(xiàn)了亂碼的情況。
我先排除了后端數據傳輸的問題,經過排查后發(fā)現(xiàn),是因為Axios默認使用的是UTF-8編碼,而返回的數據可能不是使用該編碼方式,導致亂碼出現(xiàn)。
axios.get('/api/data')
.then(response =>{
console.log(response.data);
})
.catch(error =>{
console.log(error);
});
解決辦法是在Axios的請求中指定返回值的編碼方式。
axios.get('/api/data', {
responseType: 'arraybuffer'
})
.then(response =>{
let data = iconv.decode(response.data, 'gbk');
console.log(data);
})
.catch(error =>{
console.log(error);
});
上述例子中,我們將返回值的編碼方式設置為arraybuffer,這樣就能獲得原始二進制數據,然后再使用iconv模塊將其解碼為指定的編碼方式。
需要注意的是,在使用iconv時需要先使用npm進行安裝。
npm install iconv --save
通過以上步驟,我們就可以很輕松地解決Axios亂碼的問題了。