首页 > 解决方案 > 请求模块返回 unicode 字符

问题描述

我正在尝试使用node.js 中的请求模块获得正常响应,但我无法从 amazon.com 获得正常字符串的响应,我不知道为什么,但我只遇到了 amazon.com(例如 amazon.com)的问题。它,amazon.co.uk 确实返回正常字符串)。

const request = require('request');

request.get(
    { 
        uri: 'https://www.amazon.com',
        encoding: 'utf-8'
    },
    function (error, response, body) {
        console.log(body)
});

上面的代码返回类似:b��╝��W>�S�Uk��z�=8~r����9|r|P^?}po╗��l���������� `ޜ^]��n!������U�>>�@�wz�.��O������Oo��������y�����g�N /��{����_>���i�=s���w?�z��_W)؃���;�<em>��2��9<�0ٷ8��� �<=�ϱ��ղ��3�=(�"�ԯ�; �3��=�8�2;=��28����#+,3��0"�+DZ �)�2�<� ���7�(W?�8�9\?�)#'����";�������ѽ����|�8��╚ � '

标签: node.jsrequest

解决方案


亚马逊返回的响应是 gzip 压缩的。您必须根据gzip您的请求提供选项。

const request = require('request');

request.get(
    {
        uri: 'https://www.amazon.com',
        gzip: true,
    },
    function (error, response, body) {
        console.log(body)
});

推荐阅读