[英]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.