विंडोज़ पर सी में यूटीएफ-8 स्ट्रिंग्स से निपटना
यूटीएफ-8 के रूप में स्ट्रिंग्स को एनकोड करना क्रॉस-प्लेटफॉर्म अनुप्रयोगों के लिए व्यापक रूप से उपयोग किया जाता है। हालाँकि, विंडोज़ पर UTF-8 स्ट्रिंग्स को std::cout में आउटपुट करना अद्वितीय चुनौतियाँ प्रस्तुत करता है।
विंडोज़ पर डिफ़ॉल्ट व्यवहार std::cout के लिए गैर-यूनिकोड प्रारूपों में स्ट्रिंग्स की अपेक्षा करना है। जब इसे 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 इन चरणों के अलावा, ध्यान दें कि विंडोज़ कंसोल में रैस्टर फ़ॉन्ट गैर-ASCII यूनिकोड वर्णों को सही ढंग से प्रदर्शित नहीं कर सकते हैं। उचित रेंडरिंग सक्षम करने के लिए, ट्रू टाइप फ़ॉन्ट पर स्विच करने की अनुशंसा की जाती है, जो अब विंडोज 10 और बाद के संस्करणों में डिफ़ॉल्ट है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3