首页 > 解决方案 > 在 C# 中解压 SQL Server 压缩的 varbinary 数组

问题描述

我在 SQL Server 中有一个表,varbinary(MAX)其中有一列填充了Compress带有 utf8 字符的 JSON 字符串的 SQL 方法,例如{"id": 12, title: "فروش"}在我使用的 sql 中CAST(DECOMPRESS(data) AS NVARCHAR(MAX)),结果没问题。

在 c# 中,我使用此代码解压缩数据列:

public static string Unzip(byte[] bytes)
{
    using (var msi = new MemoryStream(bytes))
    using (var mso = new MemoryStream())
    {
        using (var gs = new GZipStream(msi, CompressionMode.Decompress))
        {
            CopyTo(gs, mso);
        }
        return Encoding.UTF8.GetString(mso.ToArray());
    }
}

但结果是一个无效的字符串:

在此处输入图像描述

标签: c#sql-servercompressiongzip

解决方案


我相信您的字符串格式为“Unicode”,但您尝试使用编码类型 UTF8?


推荐阅读