using System.Diagnostics;
public static void Main()
string str = Decompress("VgMAAB+LCAAAAAAAAAvFkM1KA0EQhOtZclVhf2Z2snmAQM56Ew+zySqBoCFZhRB8d7/uzMGLx0Wanqn+mZruetZVCx31ob3eNWmjHfEKf1VSr1qjKs5OD2q1xRMoEAdHA/2do4paJhro6ni1JdtgC93jk86Ft6HT3F4Ya80vT55Z4UvOlsxdwRV2Y/iC/VA4WvpDyZ/hzvgnaE1H1pt3VV49McmB3TJz7R1Nuvyqj/COvvlj4RlL9Zv6X9r0sGXmC6gUfQu7A3OZNom+CMpMedNrIO5dlRrmHefA634WbTr/9T+1aXCzyPyZLRIWHQXmTo4yZttZ1XZtUXDJbfmA1bNoY8xxdm1e9AMRSFUvVgMAAA==");
string data = @"[{'pointId':'f791e016-3c37-4647-bd67-03adbc6ec722','ts':'2020-06-25T20:08:39+08:00','val':'324','statusFlag':0,'reliability':0,'eventState':0},{'pointId':'9ba84f56-f543-47d5-a237-b596e10d1b89','ts':'2020-06-25T20:08:39+08:00','val':'623','statusFlag':0,'reliability':0,'eventState':0},{'pointId':'9299951a-775a-487a-aa19-7063f86aa441','ts':'2020-06-25T20:08:39+08:00','val':'445','statusFlag':0,'reliability':0,'eventState':0}]
string Compressdata = Compress(data);
Console.WriteLine(Compressdata);
public static string Decompress(string compressedText)
var gzBuffer = Convert.FromBase64String(compressedText);
using (var ms = new MemoryStream())
var msgLength = BitConverter.ToInt32(gzBuffer, 0);
ms.Write(gzBuffer, 4, gzBuffer.Length - 4);
var buffer = new byte[msgLength];
using (var zip = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Decompress))
zip.Read(buffer, 0, buffer.Length);
return System.Text.Encoding.Unicode.GetString(buffer, 0, buffer.Length);
public static string Compress(string text)
var buffer = System.Text.Encoding.Unicode.GetBytes(text);
using (var ms = new MemoryStream())
using (var zip = new System.IO.Compression.GZipStream(ms, System.IO.Compression.CompressionMode.Compress, true))
zip.Write(buffer, 0, buffer.Length);
var compressed = new byte[ms.Length];
ms.Read(compressed, 0, compressed.Length);
var gzBuffer = new byte[compressed.Length + 4];
Buffer.BlockCopy(compressed, 0, gzBuffer, 4, compressed.Length);
Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzBuffer, 0, 4);
return Convert.ToBase64String(gzBuffer);