axios请求gbk或GB2312中文乱码的问题
【代码】axios请求gbk或GB2312中文乱码的问题。
·
const axios = require('axios')
const iconv = require('iconv-lite')
const url = 'http://ip.asai.cc/?ty=2&ip=3.125.20.111'
// 简化版
axios({
method: 'get',
url,
responseType: "arraybuffer"
}).then(res => {
console.log(666.901, iconv.decode(res.data, 'gbk'))
})
// 数据流方式
axios({
url,
responseType: 'stream' // 以数据流的方式输出
}).then(res => {
const chunks = []
res.data.on('data', chunk => {
chunks.push(chunk)
})
res.data.on('end', () => {
const buffer = Buffer.concat(chunks)
const str = iconv.decode(buffer, 'gb2312')
console.log(666.909, str)
})
})
// 没乱码
axios.get(url, { responseType: 'arraybuffer' })
.then((response) => {
console.log(iconv.encodingExists("utf8"))
str = iconv.decode(Buffer.from(response.data), 'gb2312');
html = iconv.encode(str, 'utf8').toString();
console.log(666.908, html)
})
.catch((err) => {
console.log(err)
})
// 乱码
axios.get(url).then(res => {
console.log(666.101, res.data)
})
更多推荐
已为社区贡献1条内容
所有评论(0)