1 /// <summary> 2 /// 压缩字符串 3 /// </summary> 4 /// <param name="str"></param> 5 /// <returns></returns> 6 public static string Compress(string str) 7 { 8 if (string.IsNullOrEmpty(str)) 9 { 10 return ""; 11 } 12 byte[] bytes = Encoding.UTF8.GetBytes(str); 13 using (MemoryStream ms = new MemoryStream(1024)) 14 { 15 StringBuilder sb = new StringBuilder(); 16 using (GZipStream compress = new GZipStream(ms, System.IO.Compression.CompressionMode.Compress)) 17 { 18 compress.Write(bytes, 0, bytes.Length); 19 } 20 byte[] byteArray = ms.ToArray(); 21 foreach (byte b in byteArray) 22 { 23 sb.Append((char)b); 24 } 25 return sb.ToString(); 26 } 27 } 28 29 /// <summary> 30 /// 解压字符串 31 /// </summary> 32 /// <param name="str"></param> 33 /// <returns></returns> 34 public static string Decompress(string str) 35 { 36 if (string.IsNullOrEmpty(str)) 37 { 38 return ""; 39 } 40 List<byte> bytes = new List<byte>(str.Length); 41 foreach (char c in str) 42 { 43 bytes.Add((byte)c); 44 } 45 using (MemoryStream ms = new MemoryStream(bytes.ToArray())) 46 { 47 using (GZipStream decompress = new GZipStream(ms, System.IO.Compression.CompressionMode.Decompress)) 48 { 49 using (StreamReader reader = new StreamReader(decompress)) 50 { 51 return reader.ReadToEnd(); 52 } 53 } 54 } 55 }