c# Gzip解码无头内容
2022年4月6日 18:43
编程技术
依赖
使用NuGet安装
SharpZipLib
主要代码
using ICSharpCode.SharpZipLib.Zip.Compression;
byte[] data; // 要解码内容
using var outputStream = new MemoryStream();
var inflater = new Inflater();
try
{
    inflater.SetInput(data);
    var buffer = new byte[2048];
    while (!inflater.IsFinished)
    {
        var count = inflater.Inflate(buffer);
        outputStream.Write(buffer, 0, count);
    }
}
catch (Exception)
{
    inflater.Reset();
}
byte[] res = outputStream.ToArray(); //解码结果
与 php gzuncompress 比较
gzuncompress 主要是不必考虑有无gzip头,都能进行解码
而 SharpZipLib 中默认的解码方法 GZipInputStream 并不支持无头内容,