首页 > 代码库 > Node.js转化GBK编码 - iconv-lite

Node.js转化GBK编码 - iconv-lite

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 = http://www.mamicode.com/iconv.decode(data, ‘GBK‘);
        console.log(""+data);
    });
});
req.end();

这是一个获取sina上股票行情的api,GBK编码的。假设不转换,中文输不出来,例如以下:
技术分享

使用iconv-lite后,即iconv.decode方法后。输出例如以下:
技术分享

<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

Node.js转化GBK编码 - iconv-lite