nodejs编码问题, 如何处理日文乱码
发布于 5 年前 作者 jin5354 3305 次浏览 最后一次编辑是 4 年前 来自 问答

这两天在写一个透明代理,主要目的是抓包,代理工作很正常,不过在抓取数据包时,中文网站正常,日文网站会出现乱码问题,请各位指点一下要如何处理。

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浏览器端解析一切正常: ADE81E6F-BFC3-4B7E-9AA4-0E18B552E84B.png 代理处的抓取结果: B0A00F5C-4526-4732-B390-5A38F0EA6CE7.png 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,确实要多查一些资料

回到顶部