Gzip压缩的结果太长C#

Gzip压缩的结果太长C#,c#,compression,gzip,C#,Compression,Gzip,我测试了GZip算法压缩base64代码,但是函数结果比原始代码长,原始长度是228412个字符,结果是241041,但是压缩结果是: 这是我的代码: static string Compress(string text) { if (string.IsNullOrEmpty(text)) return ""; byte[] buffer = Encoding.UTF8.GetBytes(text); Memor

我测试了GZip算法压缩base64代码,但是函数结果比原始代码长,原始长度是228412个字符,结果是241041,但是压缩结果是:

这是我的代码:

static string Compress(string text)
    {
        if (string.IsNullOrEmpty(text))
            return "";

        byte[] buffer = Encoding.UTF8.GetBytes(text);
        MemoryStream ms = new MemoryStream();
        using (GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true))
        {
            zip.Write(buffer, 0, buffer.Length);
        }

        ms.Position = 0;
        MemoryStream outStream = new MemoryStream();

        byte[] compressed = new byte[ms.Length];
        ms.Read(compressed, 0, compressed.Length);

        byte[] gzBuffer = new byte[compressed.Length + 4];
        System.Buffer.BlockCopy(compressed, 0, gzBuffer, 4, compressed.Length);
        System.Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzBuffer, 0, 4);
        return Convert.ToBase64String(gzBuffer);
    }

作为一个提醒,你可能想处理那些内存流。你的源文本是什么?如果它已经被压缩/加密,则可能不值得重新压缩,原因如下。原始压缩数据比原始数据大,这会令人惊讶,但转换为base64通常意味着更多字节,即使在压缩数据上也是如此。@Parrishhant我不认为压缩数据比原始数据大,可能是转换到base64导致结果变大。我假设您测试的网站在压缩流之前解码base64,然后将结果编码回base64。您可以直接在base64编码的文本上应用压缩。这可能就是最终结果不尽相同的原因。