यदि आप रुचि रखते हैं कि पात्रों को कैसे संग्रहीत किया जाता है, तो आप www.unicode.org पर जा सकते हैं और चारों ओर देख सकते हैं। उनके मुख्य पृष्ठ के शीर्ष पर एक लिंक "कोड चार्ट" है जो आपको यूनिकोड में उपलब्ध सभी वर्ण कोड दिखाता है।
सभी में, यूनिकोड में उपलब्ध एक लाख से अधिक कोड हैं (उनमें से सभी का उपयोग नहीं किया गया है)। एक बाइट में 256 अलग-अलग मान हो सकते हैं, इसलिए यदि आपको हर संभव यूनिकोड कोड स्टोर करना है तो आपको तीन बाइट्स की आवश्यकता होगी।
इसके बजाय, यूनिकोड आमतौर पर "UTF-8" एन्कोडिंग में संग्रहीत होता है जो कुछ वर्णों के लिए कम बाइट्स का उपयोग करता है और दूसरों के लिए अधिक। पहले 128 कोड मान एक बाइट में संग्रहीत किए जाते हैं, पहले 2048 तक कोड मान दो बाइट्स में संग्रहीत किए जाते हैं, 65536 तक तीन बाइट्स में संग्रहीत किए जाते हैं, और बाकी चार बाइट्स लेते हैं। इसे व्यवस्थित किया गया है ताकि कोड मान जो अधिक उपयोग किए जाते हैं वे कम जगह लेते हैं। AZ, az, 0-9 और! @ $% ^ & * () - [} {}; ":", /; / <> और कुछ जो मैं एक बाइट लेना भूल गया, लगभग सभी अंग्रेजी, 98%; जर्मन और फ्रेंच (केवल अनुमान लगाने) को प्रति चरित्र एक बाइट में संग्रहीत किया जा सकता है, और ये ऐसे अक्षर हैं जो सबसे अधिक उपयोग किए जाते हैं। सिरिलिक, ग्रीक, हिब्रू, अरबी और कुछ अन्य प्रति चरित्र दो बाइट्स का उपयोग करते हैं। भारतीय भाषाएं, अधिकांश चीनी, जापानी , कोरियाई, थाई, गणितीय प्रतीकों के टन, प्रति चरित्र में तीन बाइट्स में लिखा जा सकता है। दुर्लभ चीजें (यदि आप कभी रैखिक ए या रैखिक बी, इमोजीस में पाठ लिखना चाहते हैं) तो चार बाइट लें।
एक अन्य एन्कोडिंग UTF-16 है। सब कुछ जो UTF-8 में 1, 2 या 3 बाइट्स लेता है, UTF-16 में दो बाइट्स लेता है। यह एक फायदा है अगर आप चीनी या जापानी पाठ के बीच बहुत कम लैटिन अक्षर हैं।
UTF-8 डिज़ाइन के कारणों के बारे में: अन्य डिज़ाइनों के मुकाबले इसके कई फायदे हैं। वो हैं:
यूएस-एएससीआईआई पात्रों के साथ संगतता
उचित कॉम्पैक्टिसिटी
स्व-सिंक्रनाइज़ेशन: इसका मतलब है कि अगर आपको यूटीएफ -8 एन्कोडिंग में पात्रों के बाइट्स के एक भाग का हिस्सा दिया जाता है, तो आप यह पता लगा सकते हैं कि चरित्र कहाँ शुरू होता है। कुछ एन्कोडिंग्स में, xy और yx दोनों ही वर्णों के मान्य एनकोडिंग हो सकते हैं, इसलिए यदि आपको किसी अनुक्रम का हिस्सा दिया जाता है ... xyxyxyxyxyxy ... आप यह नहीं जान सकते कि आपके पास कौन से वर्ण हैं।
क्रमबद्धता क्रमबद्धता: यदि आप अपने बाइट मानों द्वारा UTF-8 एन्कोड किए गए तार को सॉर्ट करते हैं, तो वे अपने यूनिकोड मानों के अनुसार स्वचालित रूप से सही ढंग से सॉर्ट किए जाते हैं।
एकल-बाइट कोड के साथ संगत: अधिकांश कोड जो एकल बाइट मानों को मानता है, UTF-8 एन्कोडेड वर्णों के साथ स्वचालित रूप से सही ढंग से काम करता है।
साथ ही जो भी कारण मुझे भूल गए।