�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); 众位大神,这样的乱码怎么破,试了好多办法都不行!请赐教!
这些乱码,看起来是对象
@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对象吧;得转换成对象。害有可能是编码
正向代理还是反向代理 都有很现成的模块 基本开箱就用 不用写什么代码