【发布时间】:2014-05-18 15:44:31
【问题描述】:
我有压缩文件(二进制文件/压缩字符串 - 我不确定它是什么),
我正在尝试通过 c#/vb.net 解压缩此文件,
我尝试用 Gzip 解压:
Private Shared Function gzuncompress(ByVal data() As Byte) As Byte()
Dim input As MemoryStream = New MemoryStream(data)
Dim gzip As GZipStream = New GZipStream(input, CompressionMode.Decompress)
Dim output As MemoryStream = New MemoryStream
gzip.CopyTo(output)
Return output.ToArray
End Function
gzuncompress(New System.Net.WebClient().DownloadData("http://haxball.com/list3"))
但有一个例外(其中:gzip.CopyTo(output)):
The magic number in GZip header is not correct
但是当我尝试通过 php 解压缩它时,它起作用了:)。
php header('Content-Type: text/html; charset=utf-8');
$list = file_get_contents('http://haxball.com/list3');
$list = gzuncompress($list);
$len = implode('', unpack('n*', $list));
$bytes = unpack('c*', $list);
$string = implode('', array_map('chr', $bytes));
echo $string;
你可以在这里查看代码:
http://www.compileonline.com/execute_php_online.php
有人有 php 的 gzuncompress c#/vb.net 替代品吗?
即使有一个extarnal exe文件可以和php的gzuncompress函数做同样的事情,这也是一个很好的答案,
种类:
Process.start("c:\umcompress.exe -f c:\list3 -o c:\res.txt")
注意:好例子胜于解释
更新: 文件的前 30 个字节:
78 DA 8C BD 79 F4 5D D7 55 26 78 65 0D F1 24 0F 89 E3 98 4C 5C 47 21 71 E2 C8 B9 E7 9E E1
【问题讨论】:
-
结论:压缩一定不能兼容GZip
-
和我想的一样,所以如果php的gzuncompress可以解压它可能是压缩字符串? (如果是,我应该怎么做才能通过 c#/vb.net 解压缩压缩字符串?),注意:这是文件:haxball.com/list3(你认为它是什么?)(是的,我有很多问题,因为这是我第一次尝试类似的东西)
-
我建议你看看DotNetZip,我用过好几次了,它总是比框架中的内置类好——dotnetzip.codeplex.com
-
好的,谢谢(我想我已经检查过了,但我会再检查一次)。
-
没有 gzip 标头。可能会放气。
标签: c# vb.net winforms gzip zlib