一个前端,爱跑步、爱吉他、爱做饭、爱生活、爱编程、爱南芳姑娘,爱我所爱。世间最温暖又无价的是阳光、空气与爱,愿它们能带你去更远的地方。

  • 文章
  • 心情
  • 照片墙
  • 留言板
  • 工具
  • 友链
  • biaoblog

    专注web开发技术分享
    • 文章
    • 心情
    • 照片墙
    • 留言板
    • 工具
    • 友链

    nodejs中iconv-lite解决html乱码问题

    技术 13 2026-01-27 16:01

    发生的原因:

    一些网页的html的编码格式是utf-8/gbk/gb2312

    通过网页的responese header Content-Type字段

    当然也可以通过html中head中的meta标签 可以定义编码格式


    但是正常通过fetch网页html的时候 一般都会

    fetch("xxx").then(res => res.text()).then(html => {
        console.log("html_", html);
    })
    


    text() 这个操作在浏览器中可以根据请求返回头中的content-type进行动态编码(utf-8,gbk,gb2312)

    但是在node环境中只能按照utf-8进行编码

    所以对gbk编码格式的html 进行utf-8进行解析必然出现乱码的情况


    所以在node环境中解决方案就是通过:

    arraybuffer + iconv.decode(charset)
    

    下载iconv-lite

    npm install iconv-lite
    


    使用

    fetch("xxx").then(res => res.arrayBuffer()).then(buffer => {
             //指定的解析编码
              const html = iconv.decode(Buffer.from(buffer), "gbk"); // or "gb2312"
    })
    

    上一篇:没有了

    下一篇:重学跨域

    文章评论

    评论列表(0