Avatar ·

Cómo convertir un array de bytes UTF-8 a string en C#?

¡Hola a todos! Soy un desarrollador C# principiante y me encontré con un problema. Recibo un array de bytes de un flujo de red (socket TCP) que representa texto en codificación UTF-8. Necesito convertir este `byte[]` de vuelta a una cadena `string` normal para mostrarla en la consola o procesarla. El problema es que no entiendo cómo hacerlo correctamente. La conversión directa con `(string)buffer` no funciona, el compilador se queja. Intenté usar `Encoding.Default.GetString(buffer)`, pero obtengo caracteres extraños en lugar de texto ruso. Aquí hay un ejemplo del código que tengo: ```csharp byte[] utf8Bytes = new byte[] { 208, 161, 208, 176, 208, 189, 208, 186, 209, 130 }; // Esto es "Санкт" en UTF-8 string result = Encoding.Default.GetString(utf8Bytes); Console.WriteLine(result); // Muestra: Санкт (incorrecto) ``` ¿Podrían indicarme cómo decodificar correctamente UTF-8? ¿Y cuál es la diferencia entre las distintas codificaciones en .NET? He oído hablar de `Encoding.UTF8`, pero no estoy seguro de cómo usarlo.