前端 壓縮、解壓gzip字符


網絡上有很多解析辦法,但是很多不能用,原因是壓縮 和 解壓 編譯方式沒有統一

本文用到的插件 : pako.jsjs-base64

 

 

壓縮字符 轉為 gzip: 

    zip (str) {
      // Base64.encode 使用Base64壓縮字符,防止中文亂碼(不推薦encodeURI、encodeURIComponent,編譯后更大)
      let binaryString = pako.gzip(encode(str), { to: 'string' });
      return binaryString
    },

解壓gzip:

    unzip (key) {
      let charData = key.split('').map(item => item.charCodeAt(0))
      let array = pako.inflate(charData)
      // 如果字符太大,會導致內存溢出報錯,這里使用分片處理
      var str = '';
      var chunk = 8 * 1024
      var i;
      for (i = 0; i < array.length / chunk; i++) {
        str += String.fromCharCode.apply(null, array.slice(i * chunk, (i + 1) * chunk));
      }
      str += String.fromCharCode.apply(null, array.slice(i * chunk));
      // Base64.decode 解壓必須也要使用相同的編譯方式
      return Base64.decode(str)
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM