尝试将字节数组转换为字符串时出错…..c#
这是我的代码:尝试将字节数组转换为字符串时出错…..c#,c#,.net-4.0,C#,.net 4.0,这是我的代码: byte[] base64String = //this is being set properly var base64CharArray = new char[base64String.Length]; Convert.ToBase64CharArray(base64String, 0, base64String.Length,
byte[] base64String = //this is being set properly
var base64CharArray = new char[base64String.Length];
Convert.ToBase64CharArray(base64String,
0,
base64String.Length,
base64CharArray,
0);
var Base64String = new string(base64CharArray);
运行此命令时,调用Convert.ToBase64CharArray时出现以下错误:
偏移量未引用字符串中的位置,或者目标字符数组的长度不足。参数名称:offsetOut
如何解决这个问题,以便将字节数组转换为字符串,或者是否有更好的方法将字节数组转换为字符串 base64编码需要4个字符来编码3个字节的输入。您必须放大输出数组。为什么需要字符数组?只需将您的
字节[]
转换为Base64字符串即可:
string base64String = Convert.ToBase64String(myByteArray);
下面是一种将字节数组转换为字符串的方法
static byte[] GetBytes(string str)
{
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}
static string GetString(byte[] bytes)
{
char[] chars = new char[bytes.Length / sizeof(char)];
System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
return new string(chars);
}
你真的不需要担心编码
更多详细信息请参见这是一种简单的方法
string System.Text.Encoding.UTF8.GetString(YourbyteArray)
对这就是我要找的。非常感谢。我会在3分钟内接受你的回答