Zlib圧縮された文字列をjavascriptで解凍する方法を教えてください

実現したいこと

pythonプログラムでzlib圧縮された文字列を、javascriptで取得して解凍しようとしているのですが、
うまくいきません。
javascript側でどのようなコードを書けばよいでしょうか?

前提

zlibの解凍はpako.jsを使うつもりです

発生している問題・エラーメッセージ

pako.js:6810 Uncaught incorrect header check

該当のソースコード

pythonの圧縮プログラム

1def zip_str(text: str) -> str:2 b = zlib.compress(text.encode())3 return base64.b85encode(b).decode()

javascriptの解凍プログラム

1function deserialize(serialized_data)2{3 console.log(serialized_data);4 5// Base85デコード6var decodedBase85 = decode_ascii85(serialized_data);7console.log(decodedBase85);8 9var compressed =strToUint8Arr(decodedBase85);10const result = pako.inflate(compressed);11 12console.log(result);13 14return result;15}16 17function decode_ascii85(a) {18 a = String(a);19 var c, d, e, f, g, h = String, l = "length", w = 255, x = "charCodeAt", y = "slice", z = "replace";20 for ("<~" === a[y](0, 2) && "~>" === a[y](-2), a = a[y](2, -2)[z](/\s/g, "")[z]("z", "!!!!!"), 21 c = "uuuuu"[y](a[l] % 5 || 5), a += c, e = [], f = 0, g = a[l]; g > f; f += 5) d = 52200625 * (a[x](f) - 33) + 614125 * (a[x](f + 1) - 33) + 7225 * (a[x](f + 2) - 33) + 85 * (a[x](f + 3) - 33) + (a[x](f + 4) - 33), 22 e.push(w & d >> 24, w & d >> 16, w & d >> 8, w & d);23 24 // 配列を文字列に変換25 var result = "";26 for (var i = 0; i < e.length; i++) {27 result += String.fromCharCode(e[i]);28 }29 30 return result;31}32 33function strToUint8Arr(str) {34 var str = btoa(unescape(encodeURIComponent(str))),35 charList = str.split(''), uintArray = [];36 for (var i = 0; i < charList.length; i++) {37 uintArray.push(charList[i].charCodeAt(0));38 }39 return new Uint8Array(uintArray);40}41

追記です
pythonでなら以下のコードで解凍できることを確認しています

pythonの解凍プログラム

1def unzip_str(text: str) -> str:2 b = base64.b85decode(text)3 return zlib.decompress(b).decode()

コメントを投稿

0 コメント