前言
數(shù)據(jù)類型轉(zhuǎn)換是數(shù)據(jù)從一種類型轉(zhuǎn)換為另一種類型的過程,在編碼實(shí)現(xiàn)中,我們經(jīng)常遇見。在C#中如何實(shí)現(xiàn)將字符串轉(zhuǎn)成字節(jié)數(shù)組。本文介紹字符串與字節(jié)數(shù)組的互轉(zhuǎn)。
轉(zhuǎn)換
1、字符串轉(zhuǎn)成字節(jié)數(shù)組
使用.NET中的編碼功能,可實(shí)現(xiàn)字符串轉(zhuǎn)成字節(jié)數(shù)組。.NET中的Encoding 類是一個(gè)抽象類,通過其派生類使用其功能。下面通過幾個(gè)示例介紹字符串轉(zhuǎn)換。示例: 字符串轉(zhuǎn)換為 Ascii 格式的字節(jié)數(shù)組,并將轉(zhuǎn)換后的字節(jié)打印到控制臺(tái)。(使用ASCII.GetBytes)string paramInfo = "appid=20102903&sign=signcontent&format=json&version=1.0";
// 使用 GetBytes 將字符串轉(zhuǎn)換為字節(jié)數(shù)組
byte[] byteArray = Encoding.ASCII.GetBytes(paramInfo);
foreach (byte element in byteArray)
{
Console.WriteLine(element);
}
示例: 字符串轉(zhuǎn)換為 Unicode 格式的字節(jié)數(shù)組,并將轉(zhuǎn)換后的字節(jié)打印到控制臺(tái)。(使用Unicode.GetBytes)string paramInfo = "appid=20102903&sign=signcontent&format=json&version=1.0";
// 使用 GetBytes 將字符串轉(zhuǎn)換為字節(jié)數(shù)組
byte[] byteUnicodeArray = Encoding.Unicode.GetBytes(paramInfo);
foreach (byte element in byteUnicodeArray)
{
Console.WriteLine(element);
}
示例:將字節(jié)數(shù)組中的一系列字節(jié)或整個(gè)字節(jié)數(shù)組從一種編碼轉(zhuǎn)換為另一種編碼。(使用Encoding.Convert)// 將Ascii字節(jié)數(shù)組轉(zhuǎn)為Unicode字節(jié)數(shù)組
byte[] bytesInUnicode = Encoding.Convert(Encoding.ASCII,Encoding.Unicode,byteArray);
// 將Unicode字節(jié)數(shù)組轉(zhuǎn)為Ascii字節(jié)數(shù)組
byte[] bytesInAscii = Encoding.Convert(Encoding.Unicode,Encoding.ASCII,byteUnicodeArray);
2、字節(jié)數(shù)組轉(zhuǎn)成字符串
使用.NET中的Encoding派生類解碼功能實(shí)現(xiàn),ASCII、Encoding、UTF8中的GetString或GetChars。下面通過二個(gè)示例介紹字節(jié)數(shù)組轉(zhuǎn)成字符串。示例:(使用Encoding.ASCII.GetString)// 使用Encoding.ASCII.GetString將字節(jié)數(shù)組轉(zhuǎn)字符串
string byteArrayToString = Encoding.ASCII.GetString(byteArray);
Console.WriteLine(byteArrayToString);
示例:(使用Encoding.Unicode.GetString)// 使用Encoding.Unicode.GetString將字節(jié)數(shù)組轉(zhuǎn)字符串
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 將字符串轉(zhuǎn)換為字節(jié)數(shù)組
byte[] bytes = Encoding.ASCII.GetBytes(sample);
// 輸出字節(jié)數(shù)組
foreach (byte element in bytes)
{
Console.Write(element);
Console.Write("-");
}
Console.WriteLine();
// 使用 ASCII.GetString 將字節(jié)數(shù)組轉(zhuǎn)換為字符串
string toString = Encoding.ASCII.GetString(bytes);
// 輸出字符串
Console.WriteLine(toString);
// 將一種編碼類型轉(zhuǎn)換為另一種
string unicodeString = "unicode string.";
// 使用 使用Unicode的GetBytes將字符串轉(zhuǎn)換為字節(jié)數(shù)組
byte[] bytesInUni = Encoding.Unicode.GetBytes(unicodeString);
// 將Unicode轉(zhuǎn)換為ASCII
byte[] bytesInAscii = Encoding.Convert(Encoding.Unicode, Encoding.ASCII, bytesInUni);
// 將byte[]轉(zhuǎn)換為char[]
char[] charsAscii = new char[Encoding.ASCII.GetCharCount(bytesInAscii, 0, bytesInAscii.Length)];
Encoding.ASCII.GetChars(bytesInAscii, 0, bytesInAscii.Length, charsAscii, 0);
// 將char[]轉(zhuǎn)換為ascii字符串
string asciiString = new string(charsAscii);
// 輸出
Console.WriteLine($"Unicode字符串: {unicodeString}");
Console.WriteLine($"Ascii字符串: {asciiString}");
Console.ReadKey();
}
}
}
小結(jié)
以上是關(guān)于字符串轉(zhuǎn)換為字節(jié)數(shù)組和字節(jié)數(shù)組轉(zhuǎn)換為字符串的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
該文章在 2024/7/29 18:26:05 編輯過