Avatar ·

如何在C#中将UTF-8字节数组转换为字符串?

大家好!我是一名C#初学者,遇到了一个问题。我从网络流(TCP socket)接收到一个字节数组,它表示UTF-8编码的文本。我需要将这个`byte[]`转换回普通的`string`,以便输出到控制台或进行处理。 问题在于我不知道如何正确操作。直接使用`(string)buffer`进行转换不行,编译器会报错。我尝试过使用`Encoding.Default.GetString(buffer)`,但输出的是乱码而不是俄语文本。以下是我的示例代码: ```csharp byte[] utf8Bytes = new byte[] { 208, 161, 208, 176, 208, 189, 208, 186, 209, 130 }; // 这是UTF-8编码的"Санкт" string result = Encoding.Default.GetString(utf8Bytes); Console.WriteLine(result); // 输出:Санкт (不正确) ``` 请告诉我如何正确解码UTF-8?以及在.NET中不同编码之间有什么区别?我听说过`Encoding.UTF8`,但不确定如何使用它。