c# - 如何将 sbyte[] 转换为 base64 字符串?

标签 c# .net string bytearray base64

如何将 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/

相关文章:

.net - 如何在 F# 中模拟鼠标点击和按键

c# - 左连接中的错误空引用

c# - 你如何组织你的支持领域? (样式/图案)

c# - Windows服务启动时如何运行任务?

regex - 在 Perl 代码中改进(优化)现有字符串替换的任何建议?

在 C 中将输入数字字符串转换为整数

java - 在java中查找括号字符串的有效性

c# - 如何使用.NET 远程扩展环境变量?

c# - Playwright (.NET) 尝试使用与安装的浏览器版本不同的浏览器版本

c# - 如何在文本框上只接受数字和单个句点