node.js使用iconv-lite和zlib解决gzip压缩和gbk乱码

安装插件request,iconv-lite。zlib內置。

1、设置请求参数中的encoding为null,这样传入回调函数中的body将是一个buffer。(默认为utf8编码)

2、用zlib.gunzip()方法对body进行解压,解压的到的依然是个buffer。

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

request({

    uri: url,

    method: ‘GET‘,

    timeout: 5000,

    encoding: null

}, function(error, response, body){

    if(!error && response.statusCode == 200) {

        if(response.headers[‘content-encoding‘] == ‘gzip‘){

            zlib.gunzip(body, function(err, dezipped){

                callback(dezipped);

            });

        } else
{

            callback(body);

        }

    }

});

3、将特定编码的buffer用iconv.decode()方法解码为string。

?





1

var
data = iconv.decode(data, ‘gbk‘);

时间: 2024-10-02 18:46:30

node.js使用iconv-lite和zlib解决gzip压缩和gbk乱码的相关文章

node.js安装及grunt插件,如何进行脚本压缩

http://gruntjs.com/pluginshttp://gruntjs.com/getting-startedhttp://gruntjs.com/configuring-tasks#globbing-patterns 1.安装node.js 2.cmd   敲命令行: 查看node版本 node -v      ,查看node插件管理器  npm -v   查看 3.百度  cnpm 淘宝   ,安装nodejs插件管理器$ npm install -g cnpm --registr

【win7下安装node.js错误:roling back action】与【"grunt" 不是内部或外部命令】 解决方法

[win7下安装node.js错误:roling back action] 解决方法: Node.js 服务器端的JavaScript Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用 本文为大家讲解的是在win7下安装node.js到最后时出现回滚,安装失败的解决方法,感兴趣的同学参考下. 问

鼓捣phantomjs(二) node.js模块化集成

著作权所有:http://www.cnblogs.com/zeusro/ 引用(爬虫)不给稿费的,切你jj 一.追忆似屎年华 在上一篇post(http://www.cnblogs.com/zeusro/p/4185196.html)里面,我留下了3个坑没有填平. 2模块化 加载到nodejs里面,用于批量采集. 方法:把变动的参数做成 3淘宝的反采集 4数据的持久化 其实呢,还有一个,就是中文编码的问题, 那么今天把其中2个解决了.持久化给个思路,反采集就算了,哥已经宣布弃坑了. 二.正文 2

Node.js具体解析

介绍 JavaScript 高涨的人气带来了非常多变化.以至于现在使用其进行网络开发的形式也变得截然不同了.就如同在浏览器中一样,现在我们也能够在server上执行 JavaScript ,从前端跨越到后端,这样巨大的反差让人难以想象.由于只在几年前 Javascript 还如同 Flash 或者 Java applet 那样嵌入网页在沙箱环境中执行. 在深入Node.js之前.你可能须要阅读和了解使用跨栈式JavaScript(JavaScript across the stack)带来的优点

Node.js入门以及第一个helloworld程序

1.概念:简单的说 Node.js 就是运行在服务端的 JavaScript.学之前需要明白Node.js是无法挑战jsp.php或者asp这种老牌网站的地位的,是永远不会出现在证券.金融这种领域的.node.js的出现,就像是思维的极限反转带来的性能极致,它就像是一个玩具一样,如果把传统的jsp必做战斗机的话,那么node.js就是一个无人机! 2.Node.js的三大特性 单线程 事件驱动 非阻塞I/O Node.js的这三个特性,缺一不可,正是这些特性导致他的性能高效.当别人考虑如何进行服

基于Node.js的文件下载服务器

首先表示,并不是我客户端玩腻歪了要玩跨界:另外,代码不是我写的,而是我找的. 直接上代码地址,不想看唠叨的就直接下载代码就ok了. https://github.com/andygrn/Node.js-File-Server 下载代码后,直接把server.js拖到node.exe图标上就可以运行了,在浏览器中访问http://127.0.0.1:80/可以直接连接下载服务器了. 1.为什么要关注下载服务器(文件服务器)? 因为我要写个多线程断点续传的下载库,当然要有一个服务器进行测试.用Apa

node.js内存缓存的性能情况

1. WEB 服务性能测试和优化 1.1   测试环境搭建 网络环境:内网 压力测试服务器: 服务器系统:Linux 2.6.18 服务器配置:Intel® Xeon™ CPU 3.40GHz 4 CPUS 内存:6GB 反向代理服务器:Nginx服务器 服务器系统:Linux 2.6.18 服务器配置:Pentium® Dual-Core CPU E5800 @ 3.20GHz 2CPUS 内存:2GB 发包服务器: 发包工具:apache 2.2.19自带的ab测试工具 服务器系统:Linu

Node.js之文件下载

Node.js之文件下载,主要最近解决我的一个需求. 需求描述:如何将腾讯云上传的文件存储到本地某个目录下,如果用js来实现,纯JavaScript没有这样的功能(也许有),正好我这个项目用node.js比较多,正好可以利用node.js丰富的API实现该功能. 如下示例代码,演示下载远程文件: 源码如下(download.js): //下载参数 var http = require("http"); var fs = require("fs"); var path

关于Node.js的httpClieint请求报错ECONNRESET的原因和解决措施

背景说明 最近在工作项目中有下面一个场景: 使用Node.js的express框架实现了一个文件系统服务器端,其中有个API用于客户端上传文件.客户端使用Node.js的HttpClient来调用服务器端的API上传文件. 客户端在上传小文件时没有任何问题,在上传大文件时httpClient请求报错了下面的错误, { [Error: socket hang up] code: 'ECONNRESET' } google了很多资料,最后看了一下Node.js的相关源码终于知道了该问题的原因和解决办