前端基于pako.js的压缩和解压

基本用法

  • 引入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);
}

调用如下

前端基于pako.js的压缩和解压_第1张图片
image.png
注意事项:

pako解决中文乱码:
pako.gzip(encodeURIComponent(str), { to: 'string' })
解压完成后:
return decodeURIComponent(str)

你可能感兴趣的:(前端基于pako.js的压缩和解压)