string input = "This is a test string to compress."; byte[] inputBytes = Encoding.UTF8.GetBytes(input); using (var outputStream = new MemoryStream()) { using (var gZipStream = new GZipStream(outputStream, CompressionMode.Compress)) { gZipStream.Write(inputBytes, 0, inputBytes.Length); } byte[] compressedBytes = outputStream.ToArray(); string compressedString = Convert.ToBase64String(compressedBytes); Console.WriteLine("Compressed string: " + compressedString); using (var inputStream = new MemoryStream(compressedBytes)) { using (var gZipStream = new GZipStream(inputStream, CompressionMode.Decompress)) { using (var outputStream2 = new MemoryStream()) { gZipStream.CopyTo(outputStream2); byte[] decompressedBytes = outputStream2.ToArray(); string decompressedString = Encoding.UTF8.GetString(decompressedBytes); Console.WriteLine("Decompressed string: " + decompressedString); } } } }