使用节点';获取UTF-8 html内容;s http.get

使用节点';获取UTF-8 html内容;s http.get,html,node.js,http,encoding,utf-8,Html,Node.js,Http,Encoding,Utf 8,我试图提取给定url的html内容,而原始内容编码是utf-8。我得到了页面的html,但是html元素中的文本以错误的格式返回(问号) 我就是这么做的: var parsedPath = url.parse(path); var options = { host: parsedPath.host, path: parsedPath.path, headers: { 'Accept-Charset' : 'utf-8', } } http.get

我试图提取给定url的html内容,而原始内容编码是utf-8。我得到了页面的html,但是html元素中的文本以错误的格式返回(问号)

我就是这么做的:

var parsedPath = url.parse(path);
var options = {
    host: parsedPath.host,
    path: parsedPath.path,
    headers: {
        'Accept-Charset' : 'utf-8',
    }
}

http.get(options, function (res) {
    var data = "";
    res.on('data', function (chunk) {
        data += chunk;
    });
    res.on("end", function () {
        console.log(data);
    });
}).on("error", function () {
    callback(null);
});
如何强制执行返回数据的编码

感谢使用方法:


客户端不能强制服务器以任何特定格式返回数据。它可以告诉它,它只接受特定格式的数据,然后服务器可以选择发送回哪种格式……或者它可以完全忽略信息。@Quentin谢谢,所以我使用的标题是不必要的。如何对数据进行编码?当使用postman通过get调用获取html时,数据编写得很好,因此我认为有一种方法可以实现它
http.get(options, function (res) {
    res.setEncoding('utf8');

    var data = "";
    res.on('data', function (chunk) {
        data += chunk;
    });
    res.on("end", function () {
        console.log(data);
    });
});