nodejs编码问题, 如何处理日文乱码
这两天在写一个透明代理,主要目的是抓包,代理工作很正常,不过在抓取数据包时,中文网站正常,日文网站会出现乱码问题,请各位指点一下要如何处理。
var remoteRequest = http.request(requestOptions, function(remoteResponse) {
if(remoteResponse.headers['content-type'] && remoteResponse.headers['content-type'].search(/json/ig) !== -1) {
var body = '';
remoteResponse.on('data',function(chunk){
body += chunk;
});
remoteResponse.on('end',function(){
console.log(body);
});
}
}
访问后,chrome浏览器端解析一切正常: 代理处的抓取结果: header里写了charset是utf-8,我尝试了remoteResponse.setEncoding(‘utf-8’),还是没什么用。 ���RPPP�*��+HVR�RP2�3P��&秤����j���y% 当我看到一串乱码时,我该怎么判断这是什么编码呢?
6 回复
页面显示不一定也是乱码
或者你也可以抓包看看
谢谢楼上,乱码问题是由于服务器端开启了gzip压缩导致。要先使用zlib包进行解码。
教你们多少回了,别用 body += chunk;
哈哈~楼楼上快去买楼上的深入浅出Node.js
@JacksonTian 谢谢您,已经改用Buffer处理了。初学node.js,确实要多查一些资料