[英]converting bytes to a string C#
我想将二进制文件转换为字符串,然后可以将其转换回二进制文件。 我试过这个:
byte[] byteArray = File.ReadAllBytes(@"D:\pic.png");
for (int i = 0; i < byteArray.Length; i++)
{
textBox1.Text += (char)byteArray[i];
}
但它太慢了,在i5 CPU上转换5KB大约需要20秒。 我注意到记事本在更短的时间内完成了相同的工作。 关于如何做的任何想法?
谢谢
如果您希望能够在不丢失任何信息的情况下转换回二进制文件,那么您根本不应该做这类事情 - 您应该使用base64编码或类似的东西:
textBox1.Text = Convert.ToBase64String(byteArray);
然后你可以使用byte[] data = Convert.FromBase64String(text);
转换回来byte[] data = Convert.FromBase64String(text);
。 重要的是base64将任意二进制数据转换为已知的ASCII文本; 所有字节序列都是有效的,所有字节序列都可以是往返的,因为它只需要ASCII,它对许多传输都很友好。
这里有四件重要的事情要点:
StringBuilder
Text
属性进行单个赋值 System.Text.Encoding
,了解您真正有编码文本的情况; 如果这是UTF-8编码的数据, 那么 Encoding.UTF8.GetString(byteArray)
就是合适的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.