【发布时间】:2010-11-02 17:23:59
【问题描述】:
我在 c# 4.0 中查询一个 web 服务,它为我提供了一个由 php 的gzcompress() 压缩的字符串。现在我需要在 c# 中解压缩这个字符串。我尝试了几种方法,包括
- GZipStream decompression performance is poor
- C# to Java: Base64String, MemoryStream, GZipStream
- How to solve Gzip Magic Number Missing
但每次我得到一个“缺少幻数”异常。
谁能给我一些提示?
谢谢
编辑 1:
我最近的尝试:
public static string Decompress(string compressed) {
byte[] compressedBytes = Encoding.ASCII.GetBytes(compressed);
MemoryStream mem = new MemoryStream(compressedBytes);
GZipStream gzip = new GZipStream(mem, CompressionMode.Decompress);
StreamReader reader = new StreamReader(gzip);
return reader.ReadToEnd();
}
【问题讨论】:
-
代码、代码、代码……还有更多代码。无法修复我们看不到的东西。
-
这是公共网络服务还是您自己的?你确定你的网络服务的输出是正确的吗?你测试过使用php解压脚本的输出吗?
-
你做错了。 PHP 的 gzcompress 不返回 ASCII 字符串。
-
这不是问题。以正确的方式进行操作(我已从 PHP 对其进行 base64 编码并在 C# 中对其进行解码)确实无济于事。
标签: c# php .net compression