使用pako.js的javascript中的Gzip字符串
Gzip string in javascript using pako.js
我读过一个关于使用pako.js在javascript中解压缩字符串的主题
ZLIB解压缩-客户端
http://jsfiddle.net/9yH7M/1/
这是解压缩
的代码
// 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);
我想要一个压缩字符串的方法,输出可以通过上面的代码解压缩
如何做到
- 从
b64Data
解压缩的代码可以简化:
return pako.inflate(atob(b64Data), { to: 'string' });
- 要压缩为
b64Data
的代码:
return btoa(pako.deflate(stringToCompress, { to: 'string' }));
您可以执行以下操作:
var binData = pako.deflate( "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ".split("")
.map(function(x){return x.charCodeAt(0);}));
收益率:
binData:Uint8Array(37)[120、156、115、116、114、118、113、117、115、247、240、244、242、246、241、245、243、15、8、12、10、14、9、13、11、143、136、140、114、196、41、3、0、150、1、15、191]
var strData = String.fromCharCode.apply(null, pako.inflate(String.fromCharCode.apply(null, binData).split(""). map(function(x){return x.charCodeAt(0);})));
//yields back
"abcdefghijklmnopqrstuvxyzabdefghijmlmnopqrtuvxyz"
花了两个小时在不同的网站上尝试了20多个答案后,我找到了如何使用gzip&base64.很简单:
var your_input_string = "hello hello hello!";
var compressed_uint8array = pako.gzip(your_input_string);
var b64encoded_string = btoa(String.fromCharCode.apply(null, compressed_uint8array));
console.log(b64encoded_string);
您需要包括pako.js
。参考这个答案来学习如何获得它:如何使用pako.js javascript?Pako未定义
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 可以't让我的if语句处理js中的html表单输入
- 引用对象中的通用值
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 用程序搜索JQuery数据表中的文本
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 不能从angular2中的子组件指定父组件中的数组
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 如何更改bigquery API中的计费层选项
- 流星和铁路由器中的gzip和minimy服务器路由响应
- codeigniter ajax中的gzip压缩不起作用
- express js 4.4.1中的压缩文件(gzip)
- javascript中chrome中的本地gzip解压缩
- Tomcat中的Gzip是如何工作的
- 使用pako.js的javascript中的Gzip字符串
- 是否可以在Node.js的Phussion Passenger中打开GZIP压缩?