如何在C#中实现字符串转成字节数组或互转
|
admin
2024年7月28日 11:44
本文热度 672
|
前言
数据类型转换是数据从一种类型转换为另一种类型的过程,在编码实现中,我们经常遇见。在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 编辑过