विंडोज कंसोल में उचित यूटीएफ-8 कैरेक्टर प्रिंटिंग
इस लेख का उद्देश्य यूटीएफ-8 कैरेक्टर को प्रिंट करने का प्रयास करते समय आने वाली चुनौतियों का समाधान करना है। विंडोज़ कंसोल।
समस्या विवरण
उपयोगकर्ताओं को एक विशिष्ट कोड स्निपेट का उपयोग करके जर्मन वर्ण प्रदर्शित करने में कठिनाइयों का सामना करना पड़ा है:
#include
#include
int main() {
SetConsoleOutputCP(CP_UTF8);
// German characters not appearing
char const* text = "aäbcdefghijklmnoöpqrsßtuüvwxyz";
int len = MultiByteToWideChar(CP_UTF8, 0, text, -1, 0, 0);
wchar_t *unicode_text = new wchar_t[len];
MultiByteToWideChar(CP_UTF8, 0, text, -1, unicode_text, len);
wprintf(L"%s", unicode_text);
}
आउटपुट कोडपेज को यूटीएफ-8 पर सेट करने के बावजूद, जर्मन अक्षर सही ढंग से मुद्रित नहीं होते हैं। विंडोज़ कंसोल, कई उपलब्ध विधियाँ हैं:
WriteConsoleW का सीधे उपयोग करना:
कंसोल एपीआई के साथ स्पष्ट रूप से WriteConsoleW का उपयोग करके संचार करें। यह दृष्टिकोण सुनिश्चित करता है कि डेटा कंसोल पर सही ढंग से लिखा गया है। हालाँकि, इसके लिए कंसोल और गैर-कंसोल आउटपुट स्थितियों के बीच अंतर करने की आवश्यकता है। यह यूनिकोड डेटा को कंसोल पर सही ढंग से आउटपुट करने के लिए विस्तृत कैरेक्टर आउटपुट फ़ंक्शंस को सक्षम बनाता है। ध्यान दें कि इस विधि के लिए चयनित स्ट्रीम पर केवल विस्तृत वर्ण फ़ंक्शंस का उपयोग करना आवश्यक है। निम्न-स्तरीय फ़ंक्शन या एक कस्टम ओस्ट्रीम कार्यान्वयन।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3