ما شكل حسابات الأمانة الأحادية يجب تعزيز عودة wdirectory_iterator؟
سؤال
إذا يحتوي على ملف £ (جنيه) توقيع ثم يعود directory_iterator بشكل صحيح تسلسل الأحرف UTF8 \ xC2 \ xA3
وwdirectory_iterator يستخدم حرف واسعة، ولكن لا يزال يعود تسلسل UTF8. هل هذا هو السلوك الصحيح لwdirectory_iterator، أو أنا استخدامه بشكل غير صحيح؟
AddFile(testpath, "pound£sign");
wdirectory_iterator iter(testpath);
TS_ASSERT_EQUALS(iter->leaf(),L"pound\xC2\xA3sign"); // Succeeds
TS_ASSERT_EQUALS(*iter, L"pound£sign"); // Fails
المحلول
وترميز للحرف واسعة (كائنات wchar_t
) هو تنفيذ التابع. للبيان الثاني (أي L "الجنيه £") في العمل، وربما كنت بحاجة إلى تغيير الإعدادات المحلية الأساسية. الافتراضي هو "C" الذي لا يعرف عن طبيعة جنيه. نجحت قيمة ست عشرية لأن هذا لا يتطلب رسم الشكل المنقوش إلى قيمة في ترميز معين.
ملحوظة: أنا تخطي الصياغة الدقيقة للwchar_t w.r.t القياسية، الأحرف الموسعة يحدد الخ الإيجاز
لا تنتمي إلى StackOverflow