Avatar ·

std::wstring مقابل std::string: متى تستخدم Unicode ومتى تستخدم ASCII في لغة C++؟

```html مرحباً بالجميع! أنا مطور C++ مبتدئ، ودائماً ما يربكني الفرق بين std::wstring و std::string. قرأت أن std::string مخصصة للسلاسل "العادية"، بينما std::wstring لـ Unicode. لكن عملياً أواجه الكثير من المشاكل. إليك مثال: أكتب برنامجاً يقرأ أسماء الملفات من مجلد. بعض الملفات تحتوي على أحرف سيريلية، مثل "отчет.docx". أستخدم std::string: ```cpp std::string filename = "отчет.docx"; std::ifstream file(filename); ``` ولا يتم فتح الملف! أما إذا استخدمت std::wstring و wifstream، فكل شيء يعمل: ```cpp std::wstring filename = L"отчет.docx"; std::wifstream file(filename); ``` لكن تظهر مشاكل جديدة: لا يمكنني تمرير wstring إلى دوال تنتظر std::string (مثلاً في المكتبات القديمة)، وعند الطباعة على الكونسول عبر std::cout أحصل على رموز مشوشة. أضطر لاستخدام std::wcout، لكنه يتصرف بغرابة أيضاً. سؤال آخر: إذا كنت أكتب تطبيقاً متعدد المنصات (Windows + Linux)، ففي Linux st ```