HarmonyOS 如何解压GZIP压缩过的字符串?

HarmonyOS如何解压GZIP压缩过的字符串?

压缩过的字符串:

H4sIAB3OemUA/6WTX27UMBDG7+InEFt3Zuyxx/u2IoiCtPwRq/JAeQgQICJqVmFbgVBv1BNwHg7CxIlKUpYWqX5yPJPPM7/P8+aHWZ1/Kqpqa5YOYGGO6q+75+dV15TbVVeVZqlnT9t3494Sp7zAB0ccxF9Fnz3u44BDPDFTCozhT8LLs7KpP9bVh6zjRp2EQAlDzGlFuavM0pwc9pt7GCQguwD9egACcP/k0OTEo/asy9dBgKwjQiQgFEKOb75vVYgXZl1+G5tjbWRdnw5f5GlhXjTt7qrHTbsrm3njllRs05WnhTLRfyAmZ10azoYKnI0+RS0vJE+6BZU9Xj96UmgXr1ZFrhxEaz6uPtfvm+ph2Wn75tfPS/QHfbyPvW67L8MVXiyki8XEk9sdQRiJe3CJHfPckX34D3A/7Yjg4Ubajoa7hBAlwIy2m9Cesob/II04Jc3MVuKUs2Y4lr4yLZC9I3R3Ao1ivZuB1tdqMakIeY8eAvEt5NGKDCxYzRdhd20UcCgKUJ8FYkDaZwXaOKp4Ah9D+pc1InjjIASfZaJOjKBqpYkzOJ0DmHqDnGbuXO+pp/C3XzOzfKTUz/PULrGsbelzcZEwkZO7ueU4WaGLt78B44BLBq0EAAA=
阅读 482
1 个回答

可使用三方库pako来实现gzip,参考考链接:

https://gitee.com/openharmony-tpc/openharmony\_tpc\_samples/tree/master/pakoDemo

示例参考:

ohpm install pako
ohpm install @types/pako
import pako from 'pako';
import util from '@ohos.util';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    Row() {
      Column() {
        Button("click")
          .onClick(() => {
            // 测试用数据
            const data =
              'H4sIAB3OemUA/6WTX27UMBDG7+InEFt3Zuyxx/u2IoiCtPwRq/JAeQgQICJqVmFbgVBv1BNwHg7CxIlKUpYWqX5yPJPPM7/P8+aHWZ1/Kqpqa5YOYGGO6q+75+dV15TbVVeVZqlnT9t3494Sp7zAB0ccxF9Fnz3u44BDPDFTCozhT8LLs7KpP9bVh6zjRp2EQAlDzGlFuavM0pwc9pt7GCQguwD9egACcP/k0OTEo/asy9dBgKwjQiQgFEKOb75vVYgXZl1+G5tjbWRdnw5f5GlhXjTt7qrHTbsrm3njllRs05WnhTLRfyAmZ10azoYKnI0+RS0vJE+6BZU9Xj96UmgXr1ZFrhxEaz6uPtfvm+ph2Wn75tfPS/QHfbyPvW67L8MVXiyki8XEk9sdQRiJe3CJHfPckX34D3A/7Yjg4Ubajoa7hBAlwIy2m9Cesob/II04Jc3MVuKUs2Y4lr4yLZC9I3R3Ao1ivZuB1tdqMakIeY8eAvEt5NGKDCxYzRdhd20UcCgKUJ8FYkDaZwXaOKp4Ah9D+pc1InjjIASfZaJOjKBqpYkzOJ0DmHqDnGbuXO+pp/C3XzOzfKTUz/PULrGsbelzcZEwkZO7ueU4WaGLt78B44BLBq0EAAA='
            // 将原始数据转换为Uint8Array类型
            let textEncoder = new util.TextEncoder();
            const uint8Array: Uint8Array = textEncoder.encodeInto(data)
            console.log("testTag-" + uint8Array);
            // 使用pako进行gzip压缩
            const compressed: Uint8Array = pako.gzip(uint8Array);
            console.log("testTag-" + compressed);
            // 将压缩后的数据转换为Base64字符串
            let base64 = new util.Base64Helper();
            const base64String: string = base64.encodeToStringSync(compressed, util.Type.BASIC).toString();
          })
      }
      .height('100%')
    }
  }
}