zoukankan      html  css  js  c++  java
  • window下nodejs爬取gb2312网页出现乱码的解决方案


     发布于 2012-8-22 18:15  5230 次浏览  最后一次编辑是 2013-2-18 22:31

    linux环境下,我们可以通过 iconv 这个C++模块来处理Node.JS不支持的字符编码,如GBK,BIG5。

    iconv需要依赖native库,这样一来,在一些不支持native模块安装的虚拟主机和windows平台上,我们还是无法安心处理GBK编码。 老外写了一个通过纯Javascript转换编码的模块 iconv-lite
    可以实现window下的转换 ,通过npm可以安装此模块,bufferhelper是一个操作buffer的加强类,关于buffer的详细解析,请参考地址:http://www.infoq.com/cn/articles/nodejs-about-buffer
    比如抓取baidu.com,

    var http = require('http'), 
    var url = require('url').parse('http://www.baidu.com/');
    var iconv = require('iconv-lite'); 
    var BufferHelper = require('bufferhelper');
    
    http.get(url,function(res){
      var bufferHelper = new BufferHelper();
      res.on('data', function (chunk) {
        bufferHelper.concat(chunk);
      });
      res.on('end',function(){ 
        console.log(iconv.decode(bufferHelper.toBuffer(),'GBK'));
      });
    })
  • 相关阅读:
    Python 学习目录
    Django目录
    SQLAlchemy
    Flask之Sqlalchemy
    Websocket
    Mongodb
    虚拟环境
    Github
    LINUX
    内存管理和垃圾回收机制
  • 原文地址:https://www.cnblogs.com/neights/p/3801581.html
Copyright © 2011-2022 走看看