c# - 在 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());
}
}
但结果是一个无效的字符串:
解决方案
我相信您的字符串格式为“Unicode”,但您尝试使用编码类型 UTF8?
推荐阅读
- java - NoSuchElementException 无限循环与 pmd DD 异常
- django - http.client - ConnectionResetError: [WinError 10054] 现有连接被远程主机强行关闭
- java - JDK 17 Foreign Memory API - 什么是最好的应用程序?
- sql - 按记录 ID 仅选择最近的记录
- java - 使用 MockK 模拟 Spring Repository 时,类 java.lang.Object 不能强制转换为类 Task
- next.js - 如何根据主机名重写主页
- c# - c#:如何在windows中创建一个自定义(虚拟)文件夹并用任意文件填充它
- r - 选择要放入 feols - fixst 包中的虚拟对象
- swift - 向 TabView 页面指示器添加填充
- c# - 如何使用 C# 将字符串转换为预期格式的 Json 字符串