java zlib 解压_在javascript中解压缩gzip和zlib字符串

Pako是一个完整而现代的 Zlib 端口 .

这是一个非常简单的例子,你可以从那里开始工作 .

得到pako.js你可以像这样解压缩byteArray:

Gunzipping binary gzipped string

// Get datastream as Array, for example:

var charData = [31,139,8,0,0,0,0,0,0,3,5,193,219,13,0,16,16,4,192,86,214,151,102,52,33,110,35,66,108,226,60,218,55,147,164,238,24,173,19,143,241,18,85,27,58,203,57,46,29,25,198,34,163,193,247,106,179,134,15,50,167,173,148,48,0,0,0];

// Turn number array into byte-array

var binData = new Uint8Array(charData);

// Pako magic

var data = pako.inflate(binData);

// Convert gunzipped byteArray back to ascii string:

var strData = String.fromCharCode.apply(null, new Uint16Array(data));

// Output to console

console.log(strData);

Open up the developer console.

或者,您可以在发送之前对数组进行base64编码,因为在以JSON或XML格式发送时,Array会占用大量开销 . 同样解码:

// Get some base64 encoded binary data from the server. Imagine we got this:

var b64Data = 'H4sIAAAAAAAAAwXB2w0AEBAEwFbWl2Y0IW4jQmziPNo3k6TuGK0Tj/ESVRs6yzkuHRnGIqPB92qzhg8yp62UMAAAAA==';

// Decode base64 (convert ascii to binary)

var strData = atob(b64Data);

// Convert binary string to character-number array

var charData = strData.split('').map(function(x){return x.charCodeAt(0);});

// Turn number array into byte-array

var binData = new Uint8Array(charData);

// Pako magic

var data = pako.inflate(binData);

// Convert gunzipped byteArray back to ascii string:

var strData = String.fromCharCode.apply(null, new Uint16Array(data));

// Output to console

console.log(strData);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值