1. 程式人生 > 實用技巧 >前端 壓縮、解壓gzip字元

前端 壓縮、解壓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) }