Avatar ·

كيفية تحويل مصفوفة بايت UTF-8 إلى سلسلة نصية في C#؟

مرحباً بالجميع! أنا مطور 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`، لكنني لست متأكداً من كيفية استخدامه.