c# - 如何将二进制 blob 编码为 Unicode blob?

标签 c# .net unicode encoding utf-8

我正在尝试将 Gzip 序列化对象存储到 Active Directory 的“扩展属性”中,更多信息 here .根据它的 oM syntax,此字段是一个 Unicode 字符串64.

将二进制 blob 存储为 Unicode 的最有效方法是什么?一旦我记下了这一点,剩下的就是小菜一碟。

最佳答案

当然,有很多方法可以将任意字节数组可靠地打包成 Unicode 字符,但没有一种非常有效。 非常不幸 ActiveDirectory 会选择对本质上不是文本的数据使用 Unicode。这就像用一个字符串来表示一个 32 位整数,或者像用 Nutella 写一封情书。

我的建议是“谨慎行事”并使用基于 ASCII 的编码,例如 base64。我推荐这个的原因是因为已经有一个内置的 .NET 实现:

var base64Encoded = Convert.ToBase64String(byteArray);

var original = Convert.FromBase64String(base64Encoded);

理论上,通过使用更多的 Unicode 字符集,您可以想出比这更有效的编码。但是,为了可靠地这样做,您需要对 Unicode 有相当多的了解。

关于c# - 如何将二进制 blob 编码为 Unicode blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3722516/

相关文章:

c# - 客户关系管理 2011 : Wsdl web service doesn't contain my entities

c# - 子查询返回超过 1 个值.. 查询 C# 异常

c# - BundleConfig.cs 没有引用任何内容?

c# - 为什么有时无法收到使用 Azure SendGrid 从 ASP.Net core Web 应用程序发送的电子邮件

C#配置TCPClient客户端端口

c# - 当接收Web api方法使用HttpClient接受强类型参数时如何传递JSON字符串?

vba - 状态栏中的进度条,空白和填充的字符宽度不等

c# - ASP.Net 中的搜索关键字突出显示

c++ - Visual Studio C++ 组合框控件不适用于多字节字符集

c# - C#中字符的返回代码点