Arrays Node.js编码不是UTF-8

Arrays Node.js编码不是UTF-8,arrays,node.js,encoding,Arrays,Node.js,Encoding,我阅读了编码为win1251的html页面。但我无法渲染它,因为它显示了糟糕的编码符号。使用utf8时,此代码工作正常。如何读取并显示非utf8?谢谢 var charset = require('charset'); var iconv = require('iconv-lite'); var router = express.Router(); // accept POST request on the homepage router.post('/', function (req, r

我阅读了编码为win1251的html页面。但我无法渲染它,因为它显示了糟糕的编码符号。使用utf8时,此代码工作正常。如何读取并显示非utf8?谢谢

var charset = require('charset');
var iconv = require('iconv-lite');
var router = express.Router();


// accept POST request on the homepage
router.post('/', function (req, res) {

  request(req.body.url, function (error, response, body) {

    var result = [];
    if (error || response.statusCode != 200) {
        console.log(error);

    } else {
        console.log(charset(response.headers, body));
        var enc = charset(response.headers, body);
        if (enc != 'utf-8') {

            body = iconv.decode(body, 'win1251');
            console.log(body);
        }
        var $ = cheerio.load(body);

        //get title
        result.push("Title-> " + $("title").text());

如果在
request()
选项中设置
encoding:null
body
将是
缓冲区,而不是UTF-8字符串。这将允许您正确地将编码转换为UTF-8

例如:

request({url: req.body.url, encoding: null}, function (error, response, body) {
如果正文的编码最终为UTF-8,您只需执行以下操作:

body = body.toString('utf8');

如果有人也遇到这个问题。我做了,而不是(这也很好)

我的代码

var iconv = require('iconv-lite');
.......................

body = iconv.decode(body, 'win1251');
var iconv = require('iconv-lite');
.......................

body = iconv.decode(body, 'win1251');