我正在尝试将byte
数组转换为字符串,我所需byteArray
要做的就是简单地将数字转换为字符串Foreg。"12459865..."
我正在尝试这样做:
fileInString = Encoding.UTF8.GetString(fileInBytes, 0, fileInBytes.Length);
fileInBytes
看起来像这样:1212549878563212450045....
但是结果fileInString
看起来像这样,ID3\0\0\0\0JTENC\0\0\0@\0\0WXXX\0...
还有很多奇怪的字符。
我尝试了不同的编码样式,包括default
但都插入了一些奇怪的字符。
我唯一的选择是循环并将每个成员转换为字符串
while (currbyte != -1)
{
currbyte = fileStream.ReadByte();
//fileInBytes[i++] = (byte)currbyte;
fileInString += currbyte.ToString();
progressBar1.Value = i++;
}
但这很TOO
慢。请告诉我如何使用字节数组将其转换为字符串Encoding.....GetString
如果您要将a编码byte[]
为string
,则使用的和方法进行base64编码是执行此操作的好方法:Convert
ToBase64String
FromBase64String
string fileInString = Convert.ToBase64String(fileInBytes);
byte[] asBytesAgain = Convert.FromBase64String(fileInString);
您使用的编码fileInString += currbyte.ToString();
似乎是不明确的以10为底的编码。例如,据我所知,具有{ 1, 10, 255 }
和的数组{ 110, 255 }
将被编码为相同的:"110255"
,因此不能将其明确地改回为byte[]
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句