التعامل مع سلاسل UTF-8 في لغة C على نظام التشغيل Windows
يتم استخدام تشفير السلاسل كـ UTF-8 على نطاق واسع للتطبيقات عبر الأنظمة الأساسية. ومع ذلك، فإن إخراج سلاسل UTF-8 إلى std::cout على Windows يمثل تحديات فريدة.
السلوك الافتراضي على Windows هو أن تتوقع std::cout سلاسل بتنسيقات غير Unicode. عند تقديمه باستخدام سلاسل UTF-8، فإنه يعرض أحرفًا تالفة.
لمعالجة هذه المشكلة، هناك خطوتان أساسيتان:
إليك مقتطف التعليمات البرمجية المنقح الذي يتضمن هذه الحلول:
#include
#include
#include
#include
int main() {
// Set console code page to UTF-8
SetConsoleOutputCP(CP_UTF8);
// Enable buffering to prevent byte-by-byte transmission
setvbuf(stdout, nullptr, _IOFBF, 1000);
// Output UTF-8 string
std::string test = u8"Greek: αβγδ; German: Übergrößenträger";
std::cout بالإضافة إلى هذه الخطوات، لاحظ أن الخطوط النقطية في وحدة تحكم Windows قد لا تعرض أحرف غير ASCII Unicode بشكل صحيح. لتمكين العرض المناسب، يوصى بالتبديل إلى خط TrueType، والذي أصبح الآن الخط الافتراضي في نظام التشغيل Windows 10 والإصدارات الأحدث.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3