जब आप लिखना
cout << "\u2780";
कंपाइलर निष्पादन चरित्र सेट में उस वर्ण के उचित एन्कोडिंग में \ u2780 परिवर्तित करता है। शायद यह यूटीएफ -8 है, और इसलिए स्ट्रिंग चार बाइट्स (चरित्र के लिए तीन, शून्य टर्मिनेटर के लिए) होने के समाप्त होती है।
यदि आप रन टाइम पर चरित्र उत्पन्न करना चाहते हैं तो आपको रनटाइम पर यूटीएफ -8 में समान रूपांतरण करने की आवश्यकता है कि संकलक संकलन समय पर कर रहा है।
सी ++ 11, एक आसान wstring_convert
टेम्पलेट और codecvt पहलुओं कि यह कर सकते हैं प्रदान करता है तथापि libstdC++, मानक पुस्तकालय कार्यान्वयन कि जीसीसी के साथ आता है, फिर भी चारों ओर उन्हें (जीसीसी 4.8 के रूप में) को लागू करने के लिए मिल गया नहीं किया गया है । निम्नलिखित दिखाता है कि इन सुविधाओं का उपयोग कैसे करें, लेकिन आपको या तो एक अलग मानक लाइब्रेरी कार्यान्वयन का उपयोग करना होगा या उन्हें लागू करने के लिए libstdC++ का इंतजार करना होगा।
#include <codecvt>
int main() {
char32_t base = U'\u2780';
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> convert;
std::cout << convert.to_bytes(base + 5) << '\n';
}
आप यूटीएफ -8 के उत्पादन के किसी अन्य तरीके का भी उपयोग कर सकते हैं।उदाहरण के लिए, आइकन-आईसीयू, और पूर्व-सी ++ 11 codecvt_byname पहलुओं का मैन्युअल उपयोग सभी काम करेंगे। (मैं इनमें से उदाहरणों से पता चलता नहीं है क्योंकि कि कोड wstring_convert
द्वारा अनुमति दी सरल कोड की तुलना में अधिक शामिल किया जाएगा।)
एक वैकल्पिक कि पात्रों की एक छोटी संख्या के लिए काम करेंगे की एक सरणी बनाने के लिए किया जाएगा अक्षर का उपयोग कर तार।
char const *special_character[] = { "\u2780", "\u2781", "\u2782",
"\u2783", "\u2784", "\u2785", "\u2786", "\u2787", "\u2788", "\u2789" };
std::cout << special_character[i] << '\n';
ऑपरेटर 'L' साथ wchar_t उपयोग कर रहे हैं? यदि संभव हो तो अपना पूरा कोड पोस्ट करें या [sscce.org] (SSCCE) – pinkpanther
यदि आप यूनिकोड एन्कोडिंग के साथ गड़बड़ नहीं करना चाहते हैं, तो आप इसे जोड़ने के बजाय 'x' के संभावित मानों पर तारों को मैप करने के लिए एक तालिका का उपयोग कर सकते हैं। – dyp
की संभावित डुप्लिकेट [C++ में यूनिकोड वर्ण मुद्रित करने के लिए कैसे?] (Http://stackoverflow.com/questions/12015571/how-to-print-unicode-character-in-c) –