【发布时间】:2017-03-16 11:43:13
【问题描述】:
我将我的字符串值作为 GZIP 保存到 SQL Server 2016 VARCHAR(max) 列中。
使用C#将字符串转换为GZIP形式。
一个示例值
This is my trial string
生成的 GZIP 值
FwAAAB+LCAAAAAAABAALycgsVgCi3EqFkqLMxByFYiCVlw4AJnX75BcAAAA=
是否可以选择从 SQL Server 解压缩的值?
或者我必须在我的 C# 应用程序中解压缩它吗?
我尝试了以下功能,但失败了。也试过NVARCHAR(max)
我使用的gzip函数
public static string GZip_String(string text)
{
using (var memoryStream = new MemoryStream())
{
byte[] buffer = Encoding.UTF8.GetBytes(text);
using (var gZipStream = new GZipStream(memoryStream, System.IO.Compression.CompressionMode.Compress, true))
{
gZipStream.Write(buffer, 0, buffer.Length);
}
memoryStream.Position = 0;
var compressedData = new byte[memoryStream.Length];
memoryStream.Read(compressedData, 0, compressedData.Length);
var gZipBuffer = new byte[compressedData.Length + 4];
Buffer.BlockCopy(compressedData, 0, gZipBuffer, 4, compressedData.Length);
Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gZipBuffer, 0, 4);
return Convert.ToBase64String(gZipBuffer);
}
}
【问题讨论】:
标签: c# sql-server gzip compression