在 C# 中解压缩 SQL Server 压缩的 varbinary 数组

Ham*_*deh 1 c# sql-server compression gzip

我在 SQL Server 中有一个表,varbinary(MAX)其中有一列填充了Compress带有 utf8 字符的 JSON 字符串的 SQL 方法,例如{"id": 12, title: "\xd9\x81\xd8\xb1\xd9\x88\xd8\xb4"}在我使用的 sql 中CAST(DECOMPRESS(data) AS NVARCHAR(MAX)),结果正常。

\n

在 C# 中,我使用以下代码来解压缩数据列:

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

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

\n

在此输入图像描述

\n

Mor*_*ork 5

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

  • 不客气,我刚刚意识到我是多么的书呆子,我认识了 unicode 格式......呃。我需要重新评估我的生活:D (2认同)