解决办法
直接用 iconv-lite 模块进行转码。
iconv-lite 是一个进行编码转换的模块(node 默认编码 utf-8)。需要 decode 的编码必须是 Buffer 类型。
###使用axios
const iconv = require("iconv-lite");
const axios = require("axios");
axios.get(`url`, { responseType: "arraybuffer" }).then(function(response){
let html = iconv.decode(response.data, "gb2312");
console.log(html);
})
node http模块
const http = require("http");
const querystring = require("querystring");
const iconv = require("iconv-lite");
let postData = {
username:"username"
};
let req = http.request({
hostname: "xxxx.com",
port: 80,
path: "/pathname",
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
}
}, (res) => {
let chunks = [];
res.on("data", (chunk) => {
chunks.push(chunk);
});
res.on("end", () => {
let html = iconv.decode(Buffer.concat(chunks), "gb2312");
});
});
req.on("error", (e) => {
console.error(`problem with request: ${e.message}`);
});
// write data to request body
req.write(querystring.stringify(postData));
req.end();