
一些网页的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,db2312)
但是在node环境中只能按照utf-8进行编码
所以对gbk编码格式的html 进行utf-8进行解析必然出现乱码的情况
所以在node环境中解决方案就是通过:
arraybuffer + iconv.decode(charset)npm install iconv-litefetch("xxx").then(res => res.arrayBuffer()).then(buffer => {
//指定的解析编码
const html = iconv.decode(Buffer.from(buffer), "gbk"); // or "gb2312"
})