c++ - full - हिन्दी के विकास में यूनिकोड का योगदान




C++ 0x में चार और यूनिकोड की हस्ताक्षर (2)

सी ++ 0x काम करने वाले ड्राफ्ट से, यूनिकोड को संभालने के लिए नए चार प्रकार के (चार 16_ टी और चार 32_ टी ) हस्ताक्षरित होंगे ( यूआईटी_लिस्ट 16_ टी और यूआईटी_लिस्ट 32_ टी अंतर्निहित प्रकार होंगे)।

लेकिन जहां तक ​​मैं देख सकता हूँ (बहुत दूर नहीं) एक प्रकार का char8_t ( uint_least8_t पर आधारित) को परिभाषित नहीं किया गया है। क्यूं कर ?

और यह और भी भ्रामक है जब आप देखते हैं कि यूटीएफ -8 स्ट्रिंग के लिए एक नया यू 8 एन्कोडिंग उपसर्ग प्रस्तुत किया गया है ... पुराने दोस्त (हस्ताक्षर / अहस्ताक्षरित) के आधार पर चार अक्षर। क्यूं कर ?

अद्यतन : एक नया प्रकार जोड़ने का एक प्रस्ताव है: char8_t

char8_t: UTF-8 अक्षर और तार के लिए एक प्रकार http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0482r0.html


चार यूटीएफ -8 के लिए इस्तेमाल किया जाने वाला प्रकार होगा क्योंकि यह सुनिश्चित करने के लिए इसे फिर से परिभाषित किया गया है कि इसका उपयोग इसके साथ किया जा सकता है:

सी ++ कंपाइलर्स में यूनिकोड के लिए समर्थन को बढ़ाने के उद्देश्य के लिए, टाइप चार की परिभाषा को कम से कम आकार के रूप में संशोधित किया गया है जो कि यूटीएफ -8 के आठ-बिट कोडिंग को संग्रहित करने के लिए आवश्यक है और कम्पाइलर के किसी भी सदस्य को शामिल करने के लिए पर्याप्त है बुनियादी निष्पादन चरित्र सेट इसे पहले ही केवल उत्तरार्द्ध के रूप में परिभाषित किया गया था। तीन यूनिकोड एनकोडिंग हैं जो C ++ 0x का समर्थन करेंगे: यूटीएफ -8, यूटीएफ -16, और यूटीएफ -32 चार की परिभाषा के पहले उल्लेखनीय परिवर्तनों के अलावा, सी ++ 0x दो नए चरित्र प्रकार जोड़ देगा: char16_t और char32_t ये क्रमशः यूटीएफ -16 और यूटीएफ -32 स्टोर करने के लिए डिज़ाइन किए गए हैं।

स्रोत: http://en.wikipedia.org/wiki/C%2B%2B0x

यूटीएफ -8 आवेदन के अधिकांश अधिकांश पहले से ही पीसी / मैक पर पहले से ही उपयोग करते हैं।


char16_t और char32_t को कोड पॉइंट का प्रतिनिधित्व करने के लिए प्रयोग करने योग्य माना जाता है। चूंकि कोई नकारात्मक कोड अंक नहीं है, इसलिए यह अहस्ताक्षरित होने के लिए ये समझदार है।

यूटीएफ -8 सीधे कोड बिंदु का प्रतिनिधित्व नहीं करता है, इसलिए इससे कोई फर्क नहीं पड़ता कि क्या u8 के अंतर्निहित प्रकार पर हस्ताक्षर किए गए हैं या नहीं।





c++11