在使用cheerio处理request模块返回的gb2312网页出现了乱码,从开始一直排查问题,一直排查到request、cheerio都有问题。

首先request会进行一次转码,这里需要设置request不转码,然后使用iconv-lite插件把接收的数据解码为gb2312,然后再次使用cheerio解析接收到的数据为dom,并且设置编码,下面为详细的数据。

var request = require('request');
var iconv = require('iconv-lite');

request({
    encoding: null,
    url: 'http://www.qq.com'
}, function(error, response, body) {
     var html = iconv.decode(body, 'gb2312');
    var $ = iconv.load(body, { decodeEntities: false} );

    ....................................

    }
});

  

Nodejs 处理gb2312内容乱码问题的更多相关文章

  1. NodeJS CSV导出文件名和内容乱码解决

    // 解决不同浏览器下载文件名称乱码 var userAgent = (req.headers['user-agent']||'').toLowerCase(); res.set('Content-T ...

  2. PHP使用文件流下载文件方法(附:解决下载文件内容乱码问题)

    1.flush - 刷新输出缓冲 2.ob_clean - 清空(擦掉)输出缓冲区 此函数用来丢弃输出缓冲区中的内容. 此函数不会销毁输出缓冲区,而像 ob_end_clean() 函数会销毁输出缓冲 ...

  3. element ui 上传文件,读取内容乱码解决

    element ui 上传文件,读取内容乱码解决: 加第二个参数 reader.readAsText(file.raw,'gb2312'); <el-upload class="upl ...

  4. 利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码

    利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码 2014-07-31 12:53 1047人阅读 评论(0) 收藏  ...

  5. Mysql 导入CSV文件,中文内容乱码问题

    项目中用到含有中文字段的数据CSV文件,导入Mysql数据中发现中文内容乱码. 分析原因:因为数据库字符编码问题引起. [1]创建utf-8字符集数据库 CREATE DATABASE db_name ...

  6. 采集的时候,列表的编码是gb2312,内容页的编码却是UTF-8,这种网站怎么采集?

    采集的时候,列表的编码是gb2312,内容页的编码却是UTF-8,这种网站怎么采集? 采集的时候,列表的编码是UTF-8,内容页的编码却是gb2312,这种网站怎么采集? 这种情况怎么解决呢? 哈哈哈 ...

  7. vsftpd下载文件时内容乱码

    windows客户端访问Linux服务端的ftp并下载文档时,内容会出现乱码,这是由于vsftpd文件服务器不支持转码功能 通过java FTPClient下载 方法为 OutputStream is ...

  8. response下载csv文件内容乱码问题

    response下载csv文件内容乱码问题 解决办法:在输出流语句第一行输出 out.write(new byte[]{(byte)0xEF, (byte)0xBB, (byte)0xBF}); Se ...

  9. Linux系统下Java 转换Word到PDF时,结果文档内容乱码的解决方法

    本文分享在Linux系统下,通过Java 程序代码将Word转为PDF文档时,结果文档内容出现乱码该如何解决.具体可参考如下内容: 1.问题出现的背景 在Windows系统中,使用Spire.Doc ...

随机推荐

  1. [AngularJS] ui-router: Abstract States

    ui-router has the powerful ability to define abstract states, or states that can't be navigated to, ...

  2. springMVC中的Controller里面定义全局变量

    转自:http://notebookdong.iteye.com/blog/1869852 使用SpringMVC的时候,如果想要在Controller中定义一个全局变量,并且实现在不同用户访问程序的 ...

  3. Jquery 回到顶部

    转:http://www.cnblogs.com/DemoLee/archive/2012/04/20/2459082.html 用jQuery实现渐隐渐显的返回顶部效果(附多图)   先来看几个图片 ...

  4. 统计0到n之间1的个数

    问题描写叙述 给定一个十进制整数N,求出从1到N的全部整数中出现"1"的个数. 比如:N=2时 1,2出现了1个 "1" . N=12时 1,2,3,4,5,6 ...

  5. oc-04-类的声明和实现

    //main.m //10-[掌握]类的声明和实现 //.h为类的声明,.m为类的实现,+表示类方法静态方法,-表示对象方法..h文件中的方法都是public不能更改的.变量3中访问域:public, ...

  6. mybatis0210 mybatis和ehcache缓存框架整合

    .1mybatis和ehcache缓存框架整合 一般不用mybatis来管理缓存而是用其他缓存框架在管理缓存,因为其他缓存框架管理缓存会更加高效,因为别人专业做缓存的而mybatis专业做sql语句的 ...

  7. inux2.6.xx内核代码分析( 72节)

    http://blog.csdn.net/ustc_dylan/article/category/469214

  8. C#_判断2个对象的值是否相等

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. 炼数成金hadoop视频干货05

    视频地址:http://pan.baidu.com/s/1dDEgKwD 这一节是讲师助教带着动手操作写简单的开发环境的部署和两个实例 开发环境的部署:http://www.cnblogs.com/a ...

  10. Creating a Mono 3 RPM on CentOS

    Creating a Mono 3 RPM on CentOS A quick guide to creating an rpm of mono 3 from source, starting wit ...