前端基于pako.js的压缩和解压
2019-01-15 本文已影响2人
永远的八神
基本用法
- 引入pako.js
- 定义解压和压缩的方法
function unzip(b64Data){
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);
// // unzip
var data = pako.inflate(binData);
// Convert gunzipped byteArray back to ascii string:
strData = String.fromCharCode.apply(null, new Uint16Array(data));
return decodeURIComponent(strData);
}
function zip(str){
var binaryString = pako.gzip(encodeURIComponent(str), { to: 'string' })
return btoa(binaryString);
}
调用如下
image.png注意事项:
pako解决中文乱码:
pako.gzip(encodeURIComponent(str), { to: 'string' })
解压完成后:
return decodeURIComponent(str)