0

我有一个带有 Tango 的 D 程序,我正在尝试解压缩一个 gzip 压缩的字符串。不幸的是,我没有 A 流,但压缩数据存储在char[]. 如何使用 tangos 解压缩它tango.io.compress.ZlibStream?我需要另一个char[]带有未压缩数据的数据。

我已经尝试了几个小时了。我对探戈不是很熟悉。

谢谢

编辑:我的代码看起来像这样:

char[] rawData; // decoded data goes here
Array array = new Array(e.value[4..(e.value.length-3)]); // e.value is a char[]
// array slice, castet to char[] is "H4sIAAAAAAAAA2NkYGBgHMWDBgMAjw2X0pABAAA="
// array.readable returns 40 (matches the above string)
// decoded string is expected to be 33 repeatitions of "AQAAAAEAAAABAAAA"
// followed by "AQAAAA=="
auto reader = new ZlibInput(array);
ubyte[1024] buffer;
reader.read(buffer); // throws Z_DATA_ERROR
4

1 回答 1

0

好吧,没关系。看来,设计这种文件格式的人在用 base64 编码之前压缩了数据。我试图解压缩仍然 base64 编码的数据。

当我使用 base64 解码字符串并在生成的 ubyte 数组上使用 gzip 时,它成功了!

对于那个很抱歉。

于 2010-08-05T15:45:03.307 回答