HbuilderX中,实现Gzip的两种方法

一:使用Pako进行Gzip压缩

1,安装pako库

npm install pako

2,vue文件页面中,导入pako

<script>
    import axios from 'axios'; // 引入axios

3,解压数据

export default {
  setup() {
    const data = "待解压的文本内容。。。";
    const parsedData = ref(null);

    onMounted(() => {
      // 将base64编码的数据解码为二进制数据
      const binaryString = window.atob(data);
      const binaryArray = new Uint8Array(binaryString.length);

      for (let i = 0; i < binaryString.length; i++) {
        binaryArray[i] = binaryString.charCodeAt(i);
      }

      // 使用pako解压缩数据
      const inflated = pako.inflate(binaryArray);
      const decodedString = String.fromCharCode.apply(null, new Uint16Array(inflated));

      // 解析JSON
      try {
        parsedData.value = JSON.parse(decodedString);
      } catch (error) {
        console.error("Failed to parse JSON:", error);
      }
    });

    return {
      parsedData,
    };
  },
};

第二种方式,使用zlib.js进行Gzip压缩

1,首先,在HTML文件中引入zlib.min.js库:

<script src="https://cdnjs.cloudflare.com/ajax/libs/zlib.js/1.2.11/zlib.min.js"></script>
2,解压缩操作

// 原始字符串
let originalText = "这是一个需要被压缩的示例文本。";
							
// 将原始字符串转换为Uint8Array格式
let uint8array = new TextEncoder().encode(originalText);
							
// 使用zlib进行gzip压缩
zlib.gzip(uint8array, function(err, compressed) {
    if (err) throw err;
    console.log("压缩后的数据:", compressed);
							    
	// 对压缩后的数据进行解压
	zlib.gunzip(compressed, function(err, decompressed) {
		if (err) throw err;
		console.log("解压缩后的原始字符串:", new TextDecoder().decode(decompressed));
	});
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值