java对数据gzip解压对应JavaScript用pako.js要如何对数据压缩?

遇到问题:js压缩之后,服务端解压失败,算法不一致,目前java端对接多个平台,无法调整解压方式,js端应该如何压缩才能在服务端正常解压?

阅读 3.8k
2 个回答

引入pako.js
压缩

function zip(str) {
    var uint8Array = pako.gzip(str, { to: 'string' });
    var fromCharCodeArr = [];
    uint8Array.forEach(function(e){
        fromCharCodeArr.push(String.fromCharCode(e));
    })
    return btoa(fromCharCodeArr.join(''));
}

解压

function unzip(b64Str){
    var str = atob(b64Str);
    var charCodeAtArray = str.split('').map(function(e){return e.charCodeAt(0)});
    var uint8Array = new Uint8Array(charCodeAtArray);
    var data = pako.inflate(uint8Array);
    return String.fromCharCode.apply(null, new Uint16Array(data));
}

javascript有兼容gzip压缩支持库,你找一个来用就好,比如 pako.js

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题