"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जर्मन अक्षरों के साथ विंडोज कंसोल में UTF-8 कैरेक्टर को सही ढंग से कैसे प्रिंट करें?

जर्मन अक्षरों के साथ विंडोज कंसोल में UTF-8 कैरेक्टर को सही ढंग से कैसे प्रिंट करें?

2024-11-09 को प्रकाशित
ब्राउज़ करें:523

How to Print UTF-8 Character Correctly in Windows Console with German Characters?

विंडोज कंसोल में उचित यूटीएफ-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 का उपयोग करके संचार करें। यह दृष्टिकोण सुनिश्चित करता है कि डेटा कंसोल पर सही ढंग से लिखा गया है। हालाँकि, इसके लिए कंसोल और गैर-कंसोल आउटपुट स्थितियों के बीच अंतर करने की आवश्यकता है। यह यूनिकोड डेटा को कंसोल पर सही ढंग से आउटपुट करने के लिए विस्तृत कैरेक्टर आउटपुट फ़ंक्शंस को सक्षम बनाता है। ध्यान दें कि इस विधि के लिए चयनित स्ट्रीम पर केवल विस्तृत वर्ण फ़ंक्शंस का उपयोग करना आवश्यक है। निम्न-स्तरीय फ़ंक्शन या एक कस्टम ओस्ट्रीम कार्यान्वयन।

  1. समस्या निवारण
  2. तीसरी विधि के साथ गलत आउटपुट के मामले में:
  3. putc('\302'); पुटसी('\260'); //CP_UTF8 के साथ काम नहीं करता डालता है('\302\260'); // CP_UTF8 के साथ विंडोज कंसोल पर UTF-8 डेटा को सही ढंग से लिखता है
  4. ऐसा इसलिए है क्योंकि CP_UTF8 का उपयोग करते समय कंसोल एपीआई अलग-अलग कॉल में पारित डेटा को अवैध एन्कोडिंग के रूप में व्याख्या करता है।इसे हल करने के लिए, बनाने पर विचार करें एक स्ट्रीमबफ उपवर्ग जो मल्टीबाइट कैरेक्टर रूपांतरण को सटीक रूप से संभालता है और लिखने के बीच रूपांतरण स्थिति को बनाए रखता है।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3