在使用cheerio处理request模块返回的gb2312网页出现了乱码,从开始一直排查问题,一直排查到request、cheerio都有问题。
var request = require('request');
var iconv = require('iconv-lite');
var cheerio = require('cheerio');
request({
encoding: null,
url: 'http://www.qq.com'
}, function(error, response, body) {
var html = iconv.decode(body, 'gb2312');
var $ = cheerio.load(html, { decodeEntities: false} );
....................................
}
});
首先request会进行一次转码,这里需要设置request不转码,然后使用iconv-lite插件把接收的数据解码为gb2312,然后再次使用cheerio解析接收到的数据为dom,并且设置编码,下面为详细的数据。
《Nodejs 处理gb2312内容乱码问题》留言数:0