Bài viết này có thể giúp bạn bắt đầu.
Đoạn mã sau có thể nén một chuỗi và trả về kết quả được mã hóa cơ sở 64:
public static string Compress(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);
}
CHỈNH SỬA:Ngoài ra, bạn có thể muốn sử dụng các định dạng CLOB ngay cả khi lưu trữ XML dưới dạng văn bản vì các vecni có độ dài rất hạn chế - mà XML thường có thể nhanh chóng vượt quá.