iconv
एक पॉज़िक्स फ़ंक्शन है जो इंटरमीडिएट एन्कोडिंग चरण का ख्याल रख सकता है। आप iconv_open
का उपयोग यह निर्दिष्ट करने के लिए कर सकते हैं कि आपके पास यूटीएफ -8 इनपुट है और आप यूटीएफ -16 आउटपुट चाहते हैं। फिर, हैंडल का उपयोग iconv_open
से लौटा, आप iconv
(अपने इनपुट बफर और आउटपुट बफर निर्दिष्ट कर सकते हैं) का उपयोग कर सकते हैं। जब आप कर रहे हैं आप संभाल iconv_open
से मुक्त संसाधनों आदि
आप क्या एन्कोडिंग iconv
द्वारा समर्थित हैं और उनके नामकरण योजना (अर्थात क्या iconv_open
प्रदान करने के लिए) के बारे में आपके सिस्टम के प्रलेखन से पढ़ने की आवश्यकता होगी के लिए लौट आए पर iconv_close
कॉल करना होगा। उदाहरण के लिए, iconv
कुछ सिस्टम पर "utf-8"
उम्मीद और दूसरों यह उम्मीद "UTF8"
आदि
विंडोज iconv का एक संस्करण प्रदान नहीं करता है हो सकता है, और इसके बजाय यह खुद को UTF स्वरूपण कार्यों है प्रदान करता है: MultiByteToWideChar और WideCharToMultiByte।
//UTF8 to UTF16
std::string input = ...
int utf16len = MultiByteToWideChar(CP_UTF8, 0, input.c_str(), input.size(),
NULL, 0);
std::wstring output(utf16len);
MultiByteToWideChar(CP_UTF8, 0, input.c_str(), input.size(),
&output[0], output.size());
//UTF16 to UTF8
std::wstring input = ...
int utf8len = WideCharToMultiByte(CP_UTF8, 0, input.c_str(), input.size(),
NULL, 0, NULL, NULL);
std::string output(utf8len);
WideCharToMultiByte(CP_UTF8, 0, input.c_str(), input.size(),
&output[0], output.size(), NULL, NULL);
तो क्या मैं कह सकता हूं कि विंडोज प्लेटफ़ॉर्म में यूटीएफ -16 के लिए wchar_t का उपयोग करना सुविधा के लिए पसंद का मामला है, आप सिद्धांत में यूटीएफ -16 के लिए बिल्कुल उपयोग कर सकते हैं? – Hunter
@Hunter: सिद्धांत रूप में हाँ, लेकिन विंडोज़ में, 'wchar_t' का उपयोग यूटीएफ -16 के लिए किया जाता है, और ASCII और UTF-8 के लिए' char'। –
विंडोज़ पर, 'wchar_t' का 16 ज्ञात –