节点http get请求无法处理希伯来语内容

时间:2014-07-14 11:25:00

标签: node.js http

使用get Request时,有问号而不是希伯来语:

Bellow是请求期间调用的代码片段:

var req = ((/^https/.test(url))?https:http).request(opts,function(res) {
            res.setEncoding('utf8');
            msg.statusCode = res.statusCode;
            msg.headers = res.headers;
            msg.payload = "";
            res.on('data',function(chunk) {
                msg.payload += chunk;
            });
            res.on('end',function() {
                node.send(msg);
                node.status({});
            });
        });

1 个答案:

答案 0 :(得分:4)

最后我找到了解决方案,尽管它非常具体: 我们需要iconv并正确处理解码:

var req = ((/^https/.test(url))?https:http).request(opts,function(res) {
            //res.setEncoding('binary');
            msg.statusCode = res.statusCode;
            msg.headers = res.headers;
            msg.payload = "";
            res.on('data',function(chunk) {
                msg.payload += iconv.decode(new Buffer(chunk), "Windows-1255");
                console.log(msg.payload);
            });
            res.on('end',function() {
                node.send(msg);
                node.status({});
            });
        });