前言
數據類型轉換是數據從一種類型轉換為另一種類型的過程,在編碼實現中,我們經常遇見。在C#中如何實現將字符串轉成字節數組。本文介紹字符串與字節數組的互轉。
轉換
1、字符串轉成字節數組
使用.NET中的編碼功能,可實現字符串轉成字節數組。.NET中的Encoding 類是一個抽象類,通過其派生類使用其功能。下面通過幾個示例介紹字符串轉換。示例: 字符串轉換為 Ascii 格式的字節數組,并將轉換后的字節打印到控制臺。(使用ASCII.GetBytes)string paramInfo = "appid=20102903&sign=signcontent&format=json&version=1.0";
// 使用 GetBytes 將字符串轉換為字節數組
byte[] byteArray = Encoding.ASCII.GetBytes(paramInfo);
foreach (byte element in byteArray)
{
Console.WriteLine(element);
}
示例: 字符串轉換為 Unicode 格式的字節數組,并將轉換后的字節打印到控制臺。(使用Unicode.GetBytes)string paramInfo = "appid=20102903&sign=signcontent&format=json&version=1.0";
// 使用 GetBytes 將字符串轉換為字節數組
byte[] byteUnicodeArray = Encoding.Unicode.GetBytes(paramInfo);
foreach (byte element in byteUnicodeArray)
{
Console.WriteLine(element);
}
示例:將字節數組中的一系列字節或整個字節數組從一種編碼轉換為另一種編碼。(使用Encoding.Convert)// 將Ascii字節數組轉為Unicode字節數組
byte[] bytesInUnicode = Encoding.Convert(Encoding.ASCII,Encoding.Unicode,byteArray);
// 將Unicode字節數組轉為Ascii字節數組
byte[] bytesInAscii = Encoding.Convert(Encoding.Unicode,Encoding.ASCII,byteUnicodeArray);
2、字節數組轉成字符串
使用.NET中的Encoding派生類解碼功能實現,ASCII、Encoding、UTF8中的GetString或GetChars。下面通過二個示例介紹字節數組轉成字符串。示例:(使用Encoding.ASCII.GetString)// 使用Encoding.ASCII.GetString將字節數組轉字符串
string byteArrayToString = Encoding.ASCII.GetString(byteArray);
Console.WriteLine(byteArrayToString);
示例:(使用Encoding.Unicode.GetString)// 使用Encoding.Unicode.GetString將字節數組轉字符串
string byteUnicodeArrayToString = Encoding.Unicode.GetString(byteUnicodeArray);
Console.WriteLine(byteUnicodeArrayToString);
完整示例
using System.Text;
namespace Fountain.WinConsole.OtherDemo
{
internal class Program
{
static void Main(string[] args)
{
string sample = "Sample string";
// 使用 GetBytes 將字符串轉換為字節數組
byte[] bytes = Encoding.ASCII.GetBytes(sample);
// 輸出字節數組
foreach (byte element in bytes)
{
Console.Write(element);
Console.Write("-");
}
Console.WriteLine();
// 使用 ASCII.GetString 將字節數組轉換為字符串
string toString = Encoding.ASCII.GetString(bytes);
// 輸出字符串
Console.WriteLine(toString);
// 將一種編碼類型轉換為另一種
string unicodeString = "unicode string.";
// 使用 使用Unicode的GetBytes將字符串轉換為字節數組
byte[] bytesInUni = Encoding.Unicode.GetBytes(unicodeString);
// 將Unicode轉換為ASCII
byte[] bytesInAscii = Encoding.Convert(Encoding.Unicode, Encoding.ASCII, bytesInUni);
// 將byte[]轉換為char[]
char[] charsAscii = new char[Encoding.ASCII.GetCharCount(bytesInAscii, 0, bytesInAscii.Length)];
Encoding.ASCII.GetChars(bytesInAscii, 0, bytesInAscii.Length, charsAscii, 0);
// 將char[]轉換為ascii字符串
string asciiString = new string(charsAscii);
// 輸出
Console.WriteLine($"Unicode字符串: {unicodeString}");
Console.WriteLine($"Ascii字符串: {asciiString}");
Console.ReadKey();
}
}
}
小結
以上是關于字符串轉換為字節數組和字節數組轉換為字符串的全部內容,希望對大家的學習有所幫助。
該文章在 2024/7/29 18:26:05 編輯過