मैं स्पष्टीकरण के साथ यूनिकोड में सभी संभावित मान्य संयोजनों की गिनती के लिए कह रहा हूं।
1,111,998 : 17 प्लेन × 65,536 वर्ण प्रति विमान - 2048 सरोगेट - 66 नॉनचैकर
ध्यान दें कि UTF-8 और UTF-32 सैद्धांतिक रूप से 17 से अधिक विमानों को एन्कोड कर सकते हैं, लेकिन रेंज UTF-16 एन्कोडिंग की सीमाओं के आधार पर प्रतिबंधित है ।
137,929 कोड पॉइंट वास्तव में यूनिकोड 12.1 में दिए गए हैं ।
मुझे यह भी समझ में नहीं आता है कि निरंतर बाइट पर प्रतिबंध क्यों है, हालांकि उस चार बाइट को शुरू करने से यह स्पष्ट हो जाता है कि यह कितनी देर तक होना चाहिए।
UTF-8 में इस प्रतिबंध का उद्देश्य एन्कोडिंग को आत्म-समकालिक बनाना है ।
एक प्रतिधारण के लिए, चीनी जीबी 18030 एन्कोडिंग पर विचार करें । वहां, अक्षर ß
को बाइट अनुक्रम के रूप में दर्शाया गया है 81 30 89 38
, जिसमें अंकों का एन्कोडिंग 0
और है 8
। इसलिए यदि आपके पास एक स्ट्रिंग-खोज फ़ंक्शन है जो इस एन्कोडिंग-विशिष्ट क्विक के लिए डिज़ाइन नहीं किया गया है, तो अंक के लिए एक खोज 8
पत्र के भीतर एक गलत खोजेगीß
।
UTF-8 में, ऐसा नहीं हो सकता है, क्योंकि लीड बाइट्स और ट्रेल बाइट्स के बीच गैर-ओवरलैप गारंटी देता है कि एक छोटे चरित्र के एन्कोडिंग कभी भी लंबे वर्ण के एन्कोडिंग के भीतर नहीं हो सकता है।