一、
字節和字符串的本質含義
在C#中,byte類型是一個8位無符號整數,它的範圍是從0到255,用於表示二進制數據。而String則是表示文本字符串的數據類型。它是引用類型,用於存儲一串Unicode字符。
在實際編程中,我們通常需要將二進制數據轉換成文本字符串,或將文本字符串轉換成二進制數據。這就需要用到byte和String之間的轉換。
二、
Byte數組和String之間的轉換
將Byte數組轉換成String,可以使用System.Text.Encoding類中的GetString方法。
byte[] bytes = { 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100 };
string str = System.Text.Encoding.ASCII.GetString(bytes);
Console.WriteLine(str); // 輸出"Hello World"
在上面的代碼示例中,我們首先定義了一個Byte數組,然後使用Encoding.ASCII的GetString方法將其轉換成String類型,並輸出結果。
將String轉換成Byte數組,可以使用System.Text.Encoding類中的GetBytes方法。
string str = "Hello World";
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(str);
foreach (byte b in bytes)
{
Console.Write(b + " "); // 輸出"72 101 108 108 111 32 87 111 114 108 100 "
}
在上面的代碼示例中,我們首先定義了一個字符串,然後使用Encoding.ASCII的GetBytes方法將其轉換成Byte數組,並逐個輸出結果。
三、
Byte和Base64編碼之間的轉換
Base64編碼是一種將二進制數據轉換成可讀文本字符的編碼方式。在C#中,可以使用System.Convert類的ToBase64String方法將byte[]轉換成Base64編碼的字符串。
byte[] bytes = { 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100 };
string base64 = System.Convert.ToBase64String(bytes);
Console.WriteLine(base64); // 輸出"SGVsbG8gV29ybGQ="
在上面的代碼示例中,我們首先定義了一個Byte數組,然後使用System.Convert的ToBase64String方法將其轉換成Base64編碼的字符串,並輸出結果。
將Base64編碼的字符串轉換成Byte數組,則可以使用System.Convert類的FromBase64String方法。
string base64 = "SGVsbG8gV29ybGQ=";
byte[] bytes = System.Convert.FromBase64String(base64);
foreach (byte b in bytes)
{
Console.Write(b + " "); // 輸出"72 101 108 108 111 32 87 111 114 108 100 "
}
在上面的代碼示例中,我們首先定義了一個Base64編碼的字符串,然後使用System.Convert的FromBase64String方法將其轉換成Byte數組,並逐個輸出結果。
四、
Byte和十六進制字符串之間的轉換
在C#中,可以使用System.BitConverter類的ToString方法將byte[]轉換成十六進制字符串。
byte[] bytes = { 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100 };
string hex = System.BitConverter.ToString(bytes).Replace("-", "");
Console.WriteLine(hex); // 輸出"48656C6C6F20576F726C64"
在上面的代碼示例中,我們首先定義了一個Byte數組,然後使用System.BitConverter的ToString方法將其轉換成十六進制字符串,並去除其中的連字符,並輸出結果。
將十六進制字符串轉換成Byte數組,則可以使用System.Convert類的FromString方法。
string hex = "48656C6C6F20576F726C64";
byte[] bytes = new byte[hex.Length / 2];
for (int i = 0; i < bytes.Length; i++)
{
bytes[i] = System.Convert.ToByte(hex.Substring(i * 2, 2), 16);
}
foreach (byte b in bytes)
{
Console.Write(b + " "); // 輸出"72 101 108 108 111 32 87 111 114 108 100 "
}
在上面的代碼示例中,我們首先定義了一個十六進制字符串,然後使用System.Convert的FromBase64String方法將其轉換成Byte數組,並逐個輸出結果。
五、
結論
在C#中,byte和String之間的轉換是我們常常需要用到的操作。這篇文章從多個方面對byte轉String進行了詳細的闡述。我們可以根據實際需求選擇使用哪種方式進行轉換,以便達到最佳的效果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/302919.html