如何将 sbyte[]
转换为 base64 字符串?
我无法将 sbyte[]
转换为 byte[]
,以保持与 java 的互操作性。
最佳答案
您绝对可以将 sbyte[]
转换为 byte[]
- 我可以向您保证 Java 代码将 < em>真的 将字节数组视为无符号。 (或者换句话说:base64 只是根据无符号字节定义...)
只需转换为 byte[]
并调用 Convert.ToBase64String
。转换为 byte[]
实际上非常简单 - 虽然 C# 本身不提供两者之间的转换,但 CLR 很乐意执行引用转换,所以你只需要欺骗 C# 编译器:
sbyte[] x = { -1, 1 };
byte[] y = (byte[]) (object) x;
Console.WriteLine(Convert.ToBase64String(y));
如果你想要一个正版 byte[]
你可以复制:
byte[] y = new byte[x.Length];
Buffer.BlockCopy(x, 0, y, 0, y.Length);
但就我个人而言,我会坚持使用第一种形式。
关于c# - 如何将 sbyte[] 转换为 base64 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7312165/