node gbk转utf8

最近在做node爬虫的时候,发现利用axios返回的网页源码有中文乱码,一看网页的编码方式得知是gbk编码。研究了一下,问题解决,分享出来防止以防大家踩坑。

安装 iconv-lite

  • node默认不支持gbk编码方式
$ npm i iconv-lite
  • 这个模块是node专门处理字符编码的
  • 方法decode(data,'编码方式'),第一个参数为需要解码的buffer,一定得是一个buffer;第二个参数为以什么编码方式解码,如utf-8gbk等。
  • 注意,第二个参数是你需要解码的数据的编码方式,而不是你想转换的目的编码方式。如,将gbk转换为utf-8,第二个参数一定gbk

使用

  • 首先要在axios中配置一下返回数据的格式为arraybuffer
  • 接下来,因为我爬取的网页都是gbk编码,所有我直接写了一个响应拦截器,在拦截器中对数据进行了处理。你也可以在拦截器中添加条件选择,或者直接在需要转码的地方写。
const http = axois.create({
    baseURL: ``,
    responseType: "arraybuffer"
})

http.interceptors.response.use(res => {
    res.data = iconv.decode(res.data, 'gbk')
    return res
})

结语

如果对你有帮助的话,请点一个赞吧

相关推荐
©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页