前端杂记

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

2019-01-15  本文已影响2人  永远的八神

基本用法

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)

上一篇 下一篇

猜你喜欢

热点阅读