Avatar ·

تحويل سلسلة نصية إلى مصفوفة بايتات في C#: كيف تفعل ذلك بشكل صحيح؟

مرحبًا بالجميع. أنا مطور C# مبتدئ وواجهت مشكلة أثناء العمل مع طلبات الشبكة والملفات. أحتاج إلى تحويل سلسلة نصية عادية (string) إلى مصفوفة بايتات (byte[]) لإرسالها عبر socket أو كتابتها في ملف ثنائي. المشكلة أنني لا أفهم أي طريقة هي الصحيحة. جربت استخدام `BitConverter.GetBytes()` لكنه يعطيني مصفوفة حيث كل حرف يأخذ 4 بايتات، وهذا ليس ما توقعته. كما رأيت على الإنترنت إشارات إلى `Encoding.ASCII.GetBytes()` و `Encoding.UTF8.GetBytes()`. ما الفرق؟ إذا كتبت ببساطة `(byte[])myString` — فهذا لا يتم ترجمته أصلًا. إليك مثال على الكود الخاص بي الذي لا يعمل كما أريد: ```csharp string message = "Привет, мир!"; byte[] bytes = BitConverter.GetBytes(message); // خطأ أو ليس ما أحتاجه ``` أرشدوني كيف أحول السلسلة النصية إلى مصفوفة بايتات بشكل صحيح، بحيث يمكنني استعادتها لاحقًا؟ وهل يجب مراعاة الترميز؟ سأكون ممتنًا لشرح مفصل.