在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
类。