UnCompress类对zip解压做了进一步封装,然而这个做得并不完善。使用它来解压数据时会出现不完整的情况。
if(encoding == "gzip") { UnCompress decmp = new UnCompress; scope(exit)delete decmp; auto tmp = cast(char[])decmp.uncompress(buffer); //auto tmp = cast(char[])uncompress(buffer,0,47); //转换数据 wstring html = tmp.to!wstring(); _html = html; }
使用原始的zlib中的方法则可以正确解压。 uncompress 方法测试 :
if(encoding == "gzip") { //UnCompress decmp = new UnCompress; //scope(exit)delete decmp; //auto tmp = cast(char[])decmp.uncompress(buffer); auto tmp = cast(char[])uncompress(buffer,0,47); //转换数据 wstring html = tmp.to!wstring(); _html = html; }
使用这个方法可以解压到数据的结束位置。