public static byte[] Zip(string str, Codificaciones Coding = Codificaciones.UTF8) { byte[] bytes; switch (Coding) { case Codificaciones.ANSI: bytes = Encoding.Default.GetBytes(str); break; case Codificaciones.UTF8: bytes = Encoding.UTF8.GetBytes(str); break; case Codificaciones.UTF8SinBOM: System.Text.Encoding utf8SinBOM = new UTF8Encoding(false); bytes = utf8SinBOM.GetBytes(str); break; default: bytes = Encoding.UTF8.GetBytes(str); break; } using (var msi = new MemoryStream(bytes)) using (var mso = new MemoryStream()) { using (var gs = new GZipStream(mso, CompressionMode.Compress)) { CopyTo(msi, gs); } return(mso.ToArray()); } }
public static string Unzip(byte[] bytes, Codificaciones Coding = Codificaciones.UTF8) { using (var msi = new MemoryStream(bytes)) using (var mso = new MemoryStream()) { using (var gs = new GZipStream(msi, CompressionMode.Decompress)) { //gs.CopyTo(mso); CopyTo(gs, mso); } string Result = string.Empty; switch (Coding) { case Codificaciones.ANSI: Result = Encoding.Default.GetString(mso.ToArray()); break; case Codificaciones.UTF8: Result = Encoding.UTF8.GetString(mso.ToArray()); break; case Codificaciones.UTF8SinBOM: System.Text.Encoding utf8SinBOM = new UTF8Encoding(false); Result = utf8SinBOM.GetString(mso.ToArray()); break; default: Result = Encoding.UTF8.GetString(mso.ToArray()); break; } return(Result); } }