C++ में यूनिकोड कैरेक्टर्स प्रिंट करने के लिए यूनिवर्सल कैरेक्टर नेम (UCN) \uXXXX (16-बिट) या \UXXXXXXXX (32-बिट) सिंटैक्स का उपयोग करें। सोर्स फाइल UTF-8 एन्कोडिंग में सेव होनी चाहिए।
बेसिक सिंटैक्स
\uXXXX // 16-बिट हेक्स (BMP कैरेक्टर्स) \UXXXXXXXX // 32-बिट हेक्स (सभी यूनिकोड)
उदाहरण कोड
#include <iostream>
using namespace std;
int main() {
// हिंदी/देवनागरी कैरेक्टर्स
cout << "Hindi: \u092E \u0938 \u0915\n"; // म स क
cout << "नमस्ते: \u0928\u092E\u0938\u094D\u0924\u0947\n";
// अन्य स्क्रिप्ट्स
cout << "Greek: \u0391 \u0392 \u0393\n"; // Α Β Γ
cout << "Cyrillic: \u0410 \u0411 \u0412\n"; // А Б В
cout << "Chinese: \u4E2D \u6587\n"; // 中 文
cout << "Japanese: \u3042 \u3044 \u3046\n"; // あ い う
cout << "Arabic: \u0627 \u0628 \u062A\n"; // ا ب ت
cout << "Emoji: \U0001F600 \U0001F603\n"; // 😀 😃
// UTF-8 स्ट्रिंग लिटरल (C++11 u8 प्रीफिक्स)
const char* utf8_str = u8"Hello 世界 🌍";
cout << "UTF-8 string: " << utf8_str << endl;
// वाइड कैरेक्टर (wchar_t)
wcout.imbue(locale(""));
wcout << L"Wide: \u092E\u0938\u0915" << endl;
return 0;
}
आउटपुट
Hindi: म स क नमस्ते: नमस्ते Greek: Α Β Γ Cyrillic: А Б В Chinese: 中 文 Japanese: あ い う Arabic: ا ب ت Emoji: 😀 😃 UTF-8 string: Hello 世界 🌍 Wide: मसक
महत्वपूर्ण आवश्यकताएं
- सोर्स फाइल एन्कोडिंग: UTF-8 (BOM के बिना)
- टर्मिनल सपोर्ट: टर्मिनल यूनिकोड सपोर्ट करे (आधुनिक Linux टर्मिनल, Windows Terminal, VS Code टर्मिनल)
- फॉन्ट: यूनिकोड रेंज कवर करने वाला फॉन्ट (Noto Fonts, DejaVu Sans Mono)
- लोकेल सेटिंग:
setlocale(LC_ALL, "")याwcout.imbue(locale(""))
कंपाइलर फ्लैग्स
# GCC/Clang g++ -std=c++17 -finput-charset=UTF-8 program.cpp # MSVC (Visual Studio) /source-charset:utf-8 /execution-charset:utf-8
C++20 char8_t
#include <iostream>
#include <string>
int main() {
// C++20: char8_t और u8 स्ट्रिंग लिटरल
std::u8string s = u8"नमस्ते 🌍";
// प्रिंट करने के लिए reinterpret_cast या लाइब्रेरी की आवश्यकता
cout << reinterpret_cast<const char*>(s.c_str()) << endl;
return 0;
}