我正在尝试将 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/