node.js使用iconv-lite和zlib解决gzip压缩和gbk乱码

 

安装插件request,iconv-lite。zlib內置。javascript

一、设置请求参数中的encoding为null,这样传入回调函数中的body将是一个buffer。(默认为utf8编码)java

二、用zlib.gunzip()方法对body进行解压,解压的到的依然是个buffer。函数

request({
	uri: url,
	method: 'GET',
	timeout: 5000,
	encoding: null
}, function(error, response, body){
	if(!error && response.statusCode == 200) {
		if(response.headers['content-encoding'] == 'gzip'){
			zlib.gunzip(body, function(err, dezipped){
				callback(dezipped);
			});
		} else {
			callback(body);
		}
	}
});

 三、将特定编码的buffer用iconv.decode()方法解码为string。编码

var data = iconv.decode(data, 'gbk');
相关文章
相关标签/搜索