Avatar ·

Comment convertir un tableau d'octets UTF-8 en chaîne en C#?

Bonjour à tous ! Je suis un développeur C# débutant et j'ai rencontré un problème. Je reçois un tableau d'octets d'un flux réseau (socket TCP) qui représente du texte encodé en UTF-8. Je dois convertir ce `byte[]` en une chaîne `string` normale pour l'afficher dans la console ou la traiter. Le problème est que je ne comprends pas comment faire correctement. La conversion directe via `(string)buffer` ne fonctionne pas, le compilateur génère une erreur. J'ai essayé d'utiliser `Encoding.Default.GetString(buffer)`, mais j'obtiens des caractères illisibles au lieu du texte russe. Voici un exemple de code que j'ai : ```csharp byte[] utf8Bytes = new byte[] { 208, 161, 208, 176, 208, 189, 208, 186, 209, 130 }; // C'est "Санкт" en UTF-8 string result = Encoding.Default.GetString(utf8Bytes); Console.WriteLine(result); // Affiche : Санкт (incorrect) ``` Dites-moi, comment décoder correctement l'UTF-8 ? Et quelle est la différence entre les différents encodages dans .NET ? J'ai entendu parler de `Encoding.UTF8`, mais je ne suis pas sûr de comment l'utiliser.