在C#中,UnicodeEncoding
类用于将字符串转换为字节数组或将字节数组转换为字符串。为了确保准确地进行编码和解码操作,你需要遵循以下步骤:
UnicodeEncoding
对象。你可以使用默认的 Unicode 编码(UTF-16)或指定其他编码,例如 UTF-32。UnicodeEncoding unicodeEncoding = new UnicodeEncoding();
GetBytes
方法将字符串转换为字节数组。这个方法接受一个字符串参数,并返回一个字节数组。string inputString = "你好,世界!";
byte[] encodedBytes = unicodeEncoding.GetBytes(inputString);
GetString
方法将字节数组转换回字符串。这个方法接受一个字节数组参数,并返回一个字符串。byte[] encodedBytes = ...; // 从上一步获取的字节数组
string decodedString = unicodeEncoding.GetString(encodedBytes);
以下是一个完整的示例:
using System;
using System.Text;
class Program
{
static void Main()
{
UnicodeEncoding unicodeEncoding = new UnicodeEncoding();
string inputString = "你好,世界!";
byte[] encodedBytes = unicodeEncoding.GetBytes(inputString);
Console.WriteLine("Encoded bytes:");
foreach (byte b in encodedBytes)
{
Console.Write(b + " ");
}
string decodedString = unicodeEncoding.GetString(encodedBytes);
Console.WriteLine("\nDecoded string:");
Console.WriteLine(decodedString);
}
}
这个示例将输入字符串 “你好,世界!” 转换为字节数组,然后再将其转换回字符串。输出结果如下:
Encoded bytes:
36 00 20 31 00 2c 00 20 e4 00 b8 00 96 00 21
Decoded string:
你好,世界!
请注意,UnicodeEncoding
类可以处理 Unicode 字符,包括那些超出基本多语言平面(BMP)的字符。如果你需要处理这些字符,可以考虑使用 Encoding.Unicode
或 Encoding.UTF32
类。