【发布时间】:2021-05-11 20:36:34
【问题描述】:
我正在尝试解码表示 gzip 文件的二进制数据,我需要解压缩 gzip,以便我可以获取 gzip 中的 nbt(我的世界符号)字符串,但我在 GZipStream 上不断收到以下错误。阅读:
存档条目是使用不受支持的压缩方法压缩的。
有人知道怎么做吗?
这是我的代码:
public static string Decompress(string input)
{
byte[] compressed = Convert.FromBase64String(input); //This is the binary data
byte[] decompressed = Decompress(compressed);
return Encoding.UTF8.GetString(decompressed);
}
private static byte[] Decompress(byte[] input)
{
using (var source = new MemoryStream(input))
{
byte[] lengthBytes = new byte[4];
source.Read(lengthBytes, 0, 4);
var length = BitConverter.ToInt32(lengthBytes, 0);
using (var decompressionStream = new GZipStream(source,
CompressionMode.Decompress))
{
var result = new byte[length];
decompressionStream.Read(result, 0, length); //Error
return result;
}
}
}
【问题讨论】: