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.