using System;
using
System.Collections.Generic;
using
System.Text;
using
System.IO.Compression;
using System.IO;
 
namespace
Compress_and_decompress_string
{
    class Compress
    {
        public static string
CompressString(string text)
        {
            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);
 
        }
    }
}