node当使用node获取GBK编码的数据时,nodejs只支持utf-8,node没有提供转换编码的原生支持,有倒是有一个模块iconv能干这个事,但需要本地方法,VC++库的支持。国外有个大牛写了一个纯粹用Javascript解码的模块:iconv-lite,可以实现编码转换,使用方法如下:

var http = require("http");
var iconv = require("iconv-lite");
var url = "http://hq.sinajs.cn/list=sh600595";
var req = http.request(url, function(res){
    res.on('data',function(data){
        data = iconv.decode(data, 'GBK');
        console.log(""+data);
    });
});
req.end();

这是一个获取sina上股票行情的api,GBK编码的,如果不转换,中文输不出来,如下:
这里写图片描述

使用iconv-lite后,即iconv.decode方法后,输出如下:
这里写图片描述