�3i������Gq4���΅O�$�R%�r��jt�)�g�$�&���<.�W��ď��q�?��8鬒ay����6���7o�o�&�(��vKw�t�c�|NU3}D�����X�F��S\��x��N�UrO�r6�-�!n4�����ˏGӇ�E<��G�E�%��*��r�XF�������m�8�D�q�QY���ܬ��h�?ҥ��|<�c~�iu6��K~;����hNO�=��Mw��T�%�d�n?��y���������P,To�Ҥ���,G���N1�>.&����H����ҋF�U�?�TG�ê��<>$(��z��`�,� � ME�Q]�+��2�l��J�?�R�J���h<u��Sרמ���Ϥ��S�ea�nDƅ
��ѯ���o�����������}����w���}�<Dž� �v�쎦��Q��� ��/�yQ�x�vp�7<>=�G�GI�^�}��=>�Nj�xvR~V����������B�E�j��G���A/�?<\�V�A{c8��yi8[LJ�qi<:�D��Ѵ];�G��hz�o��2)�����4�Z\gc89�ϖ#�=m�]��1
$�S��q<L�.�O{�� ^�kg��S���Z����O5���.����Ub���9��q��^�ٮ�f4�Ѵ� m�h��̫ܛ%�lB��?���1�W�-�����o�ܞM�
�P�M�[�ƫ$>���[ns4���� 9��;��-В�Njz1�G�� ��]�p����z��v,h���>w�1Z4�?�4�l�ܹԩ���p���TT����r>��GSЬ�����1��ͳ���\Nf��6�FjdT�QON�
:��������{�����C��
代码如下:
const http = require('http');
const iconv = require('iconv-lite');
let op={
host :'127.0.0.1',
port :'8888',
method : 'GET',
path : '/',
gzip:true,
headers:{
'host' : 'www.baidu.com'
,'scheme' : 'https'
,'version' : 'HTTP/1.1'
,'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/*;q=0.8'
,'Accept-Encoding' : 'gzip, deflate, sdch'
,'Accept-Language' : 'zh-CN,zh;q=0.8'
,'Cache-Control' : 'no-cache'
,'connection' : 'keep-alive'
}
};
let req=http.request(op, function(res){
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
console.log(' ');
res.on('data',function(data){
console.log('BODY: ' + data);
});
});
req.on('error',function(e){
console.log('ERRPR: '+e.message);
});
req.end();
这个输出: console.log('BODY: ' + data); 众位大神,这样的乱码怎么破,试了好多办法都不行!请赐教!
回复 (8)
这些乱码,看起来是对象
@zhaixg 这你都能看出来,求破解!
{
"headers": {
"accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8;charset=UTF-8"
}
}
试试指定编码
可能是 Accept-Encoding 问题,把 ,‘Accept-Encoding’ : ‘gzip, deflate, sdch’ 去掉或者使用 zlib 对 data 解压。
PS:可以把 response 的 Content-Encoding 打印出来看下
赞同4楼。 曾经请求过一个接口,返回的数据总是乱码。把Accept-Encoding改成sdch或者干脆去掉就好了。
一般是编码的问题,需要转码, 下面给你写了个示例
const iconv = require('iconv-lite'); const request = require('request-promise');
(async function () { let options = { uri: 'https://www.baidu.com/', headers: { }, encoding: null, timeout: 1500, transform: function (body) { return iconv.decode(body, 'utf8'); } }; let response = await request(options); console.log(response); })();
body的是buffer对象吧;得转换成对象。害有可能是编码
正向代理还是反向代理 都有很现成的模块 基本开箱就用 不用写什么代码