如何将char[]对象读入tango.io.compress.ZlibStream?

如何将char[]对象读入tango.io.compress.ZlibStream?,stream,gzip,d,zlib,tango,Stream,Gzip,D,Zlib,Tango,我有一个带有Tango的D程序,我正在尝试解压缩一个Gzip字符串。不幸的是,我没有数据流,但压缩数据存储在char[]中。如何使用tangos tango.io.compress.ZlibStream解压它?我需要另一个包含未压缩数据的char[] 我已经试了几个小时了。我对探戈不太熟悉 多谢各位 编辑:我的代码如下所示: char[] rawData; // decoded data goes here Array array = new Array(e.value[4..(e.value.

我有一个带有Tango的D程序,我正在尝试解压缩一个Gzip字符串。不幸的是,我没有数据流,但压缩数据存储在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

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

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

很抱歉