我是初学nodejs小白,参照群里的demo,尝试爬去页面上的一些数据; demo里是爬取cnodejs.org首页的数据,cnodejs.org的编码是utf-8,中文返回显示正常; 自己尝试去修改,爬去一些新闻网站(news.qq.com/news.baidu.com)的页面新闻数据,这些网站的编码是gb2312,运行爬虫脚本的时候,返回的指定元素在console打印出来如下:
<a href=“http://lianghui.huanqiu.com/2016/roll/2016-03/8722543.html?from=bdwz” target="_blank" class=“a3” mon=“ct=1&a=1&c=top&pn=0”>ϰ��ƽ����ȫ��¼\n <a href=“http://lianghui.huanqiu.com/2016bd/” target="_blank" class=“a3” mon=“ct=1&a=1&c=top&pn=0”>����ר��
PS:“ϰ”诸如这种代码,我查了下,叫做NCR,在浏览器这句中文显示如下:
ϰ��ƽ����ȫ��¼
所以想请教下前辈,这个gb2312的中文返回乱码的坑,应该问题是出在哪里了呢?
@njaulj 是的,最初我也是参考了网上很多字符串吗的建议,使用iconv-lite进行转吗,可是结果是这样的:
“习锟斤拷平锟斤拷锟斤拷全锟斤拷录”
我个人认为是get回来的页面里的中文字符已经是有问题的,但是对其中的机理并不是很清楚,求指导~
应该是使用错啦, 可以参照一下这里的实现哦 ref
'use strict';
const charset = require('superagent-charset');
const request = require('superagent');
charset(request);
request
.get('news.qq.com/news.baidu.com')
.charset('gbk')
.end((err, res) => {
console.log('--------------->', res.text);
});