كيفية تحويل مصفوفة بايتات UTF-8 (byte[]) إلى سلسلة نصية (string) في C#؟
مرحباً بالجميع! أنا مبتدئ في C# وقد واجهت مشكلة أثناء العمل مع بيانات الشبكة. لدي دالة تستقبل مصفوفة بايتات (byte[]) من TCP socket. أعلم أن هذه البايتات مشفرة بـ UTF-8، وأحتاج تحويلها إلى سلسلة نصية عادية (string) لعرضها في الكونسول أو معالجتها لاحقاً.
إليك مثال على الكود الذي لدي:
```csharp
byte[] data = new byte[] { 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100 }; // "Hello World" في UTF-8
string result = data.ToString(); // أحصل على "System.Byte[]"
Console.WriteLine(result);
```
من الواضح أن `data.ToString()` لا يعمل — فهو يُرجع اسم النوع وليس المحتوى. جربت استخدام `Convert.ToBase64String()` لكنه يعطي سلسلة بصيغة base64 وليس بصيغة قابلة للقراءة. جربت أيضاً التحويل المباشر إلى string عبر (string)data — المترجم يشتكي.
أعلم أن في .NET يوجد كلاس `Encoding`، لكني لا أفهم كيفية تطبيقه بشكل صحيح. أرجو إرشادي إلى الطريقة الصحيحة والآمنة لتحويل byte[] من UTF-8.