首页 > 爬虫爬到中文乱码该如何解决

爬虫爬到中文乱码该如何解决

利用Node的cheerio插件去爬一个网站的新闻,结果发现从中获得的中文显示为
“������ͼ��20140611����”乱码,求问如何解决,顺便求问不同转码格式的知识点;


除了 @ZheX 的回答,有些网页不严谨,在爬取时还要对requestoption进行设置,如下:

var options = {
    method: 'GET',
    encoding: null,
    url: example.com
}

request(options, function(err, response, body){});

其中的encoding不能忘,之前就遇到过这样的一个网站,同时其返回中没说明charset
但,不加encoding为何出错,待高手解疑。


首先肯定是确定要爬的页面的编码。如果是GBK的话就需要对爬过来的文字用iconv库做转化,在nodejs中变成UTF8。比如:

var request = require('request'),
    cheerio = require('cheerio'),
    Iconv = require('iconv').Iconv;

var iconv = new Iconv('GBK', 'UTF-8');

request(opts, function (err, response, body) {
    var result = iconv.convert(new Buffer(body, 'binary')).toString();
    var $ = cheerio.load(result);
    // ......
});

【热门文章】
【热门文章】