nodejs get网站代码 乱码问题

RalphyZ 2018-03-28 09:12:20
有没有人知道为什么我用get网站的代码,f12看编码是utf-8,别的网站都能打开,英文中文简体繁体都能开只有一个网站获取的是乱码,这是一个香港网站,代码如下
...全文
674 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wcwtitxu 2018-03-28
  • 打赏
  • 举报
回复
function unzip(data) {
	return new Promise(function(resolve, reject) {
		require('zlib').unzip(data, function(err, res){  
			if (err) {
				reject(err);
			} else {
				resolve(res);  
			}
		});
	});
}
function httpGet(url) {
	return new Promise(function(resolve, reject) {
		require('http').get(url, function(res) {
			let ret:any = [];
			res.on('data', function(d) {
				ret.push(d);
			});
			res.on('end', function() {
				resolve({res, data:Buffer.concat(ret)}); 
			});
		}).on('error', reject);
	});
}

function loadPage(url) {
	return httpGet(url).then(function({res, data}) {
		if (res.headers['content-encoding'] == 'gzip') {
			return unzip(data).then(function(data) {
				return {res, data};
			});
		} else {
			return {res, data};
		}
	}).then(function({res, data}) {
		let encoding = 'utf-8';
		if (/charset=([^;\s]+)/i.test(res.headers['content-type'])) {
			encoding = RegExp.$1;
		}
		return require('iconv-lite').decode(data, encoding);
	});
}

loadPage('http://bet.hkjc.com/marksix/default.aspx').then(function(d) {
	console.log(d);
})
wcwtitxu 2018-03-28
  • 打赏
  • 举报
回复
buffer 数据不要直接拼接到 string 中。 另外,你应该贴文本形式的代码,而不是截图。 这样别人要给你调整才方便

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧