我怎么可以转换为sbyte []为base64字符串?

我怎么可以转换sbyte[]为base64字符串?

我不能在转换sbyte[]一个byte[]以保持与Java的互操作性。

--------------解决方案-------------

你绝对可以转换sbyte[]一个byte[] -我可以你几乎保证了Java代码真的会被治疗的字节数组作为无符号。 (或者换一种说法: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);

但我个人会去与第一种形式坚持下去。

class Program
{
static void Main()
{
sbyte[] signedByteArray = { -2, -1, 0, 1, 2 };
byte[] unsignedByteArray = (byte[])(Array)signedByteArray;
Console.WriteLine(Convert.ToBase64String(unsignedByteArray));
}
}

分类:C# 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.282 (s). 10 q(s)