使用Brotli压缩后字符串解压失败,无法还原原始数据求助
压缩二维码数据时无法还原原始字符串的问题
我正在开发二维码的压缩编码逻辑,流程如下:
- 用
TextEncoder将JSON序列化后的学生数据编码为Uint8Array - 用Brotli库压缩该
Uint8Array以减小体积 - 为生成二维码,把压缩后的
Uint8Array通过TextDecoder解码成字符串
但后续执行反向流程(将解码出的字符串重新编码为Uint8Array→Brotli解压→解码回字符串)时,无法还原出原始数据。
代码实现
const encodedDetails = new TextEncoder().encode(JSON.stringify(this.studentDetails, null, 0)); // 编码为Uint8Array const compressedEncodedDetails = await compress(encodedDetails); // 压缩Uint8Array const decodeData = new TextDecoder().decode(compressedEncodedDetails); // 解码为字符串用于生成二维码 // 反向流程 const encode_decodeData = new TextEncoder().encode(decodeData); // 将字符串重新编码为Uint8Array const de_compress_compressedData = await decompress(encode_decodeData); // 解压 const orignalData = new TextDecoder().decode(de_compress_compressedData); // 尝试还原原始数据 console.log('+++++ 编码后数据 1', encodedDetails); console.log('+++++ 压缩后数据 2', compressedEncodedDetails); console.log('++++++ 解码后的字符串 3', decodeData); console.log('++++++ 重新编码后的Uint8Array 4', encode_decodeData); console.log('++++++ 解压后的数据 5', de_compress_compressedData); console.log('++++++ 尝试还原的原始数据 6', orignalData);
我找不到问题所在,希望得到相关提示或建议。
控制台日志截图

内容的提问来源于stack exchange,提问作者Farrukh Faizy
相关产品推荐
相关产品推荐

