使用 Node 的 http.get 获取 UTF-8 html 内容

Get UTF-8 html content with Node's 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);
});

如何强制对返回数据进行编码?

谢谢

像这样使用setEncoding()方法:

http.get(options, function (res) {
    res.setEncoding('utf8');

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