"यूनिकोड": अवतरणों में अंतर

→‎यूनिकोड कन्सॉर्शियम: व्याकरण में सुधार
टैग: मोबाइल संपादन मोबाइल एप सम्पादन Android app edit
→‎UTF-8, UTF-16 तथा UTF-32: व्याकरण में सुधार
टैग: मोबाइल संपादन मोबाइल एप सम्पादन Android app edit
पंक्ति 54:
== UTF-8, UTF-16 तथा UTF-32 ==
# यूनिकोड का मतलब है सभी लिपिचिह्नों की आवश्यकता की पूर्ति करने में सक्षम 'एकसमान मानकीकृत कोड'।
# पहले सोचा गया था कि केवल १६16 बिट के माध्यम से ही दुनिया के सभी लिपिचिह्नों के लिये अलग-अलग कोड प्रदान किये जा सकेंगे। बाद में पता चला कि यह कम है। फिर इसे ३२32 बिट कर दिया गया। अर्थात इस समय दुनिया का कोई संकेत नहीं है जिसे ३२32 बिट के कोड में कहीं न कहीं जगह न मिल गयी हो।
# 8 बिट के कुल २पर2 पर घात 8 = २५६256 अलग-अलग बाइनरी संख्याएंसंख्याएँ बन सकती हैं; १६16 बिट से 2 पर घात १६16 = ६५५३६65536 और ३२32 बिट से ४२९४९६७२९६4294967296 भिन्न (distinct) बाइनरी संख्याएंसंख्याएँ बन सकती हैं।
# यूनिकोड के तीन रूप प्रचलित हैं। UTF-8, UTF-16 और UTF-32.
# इनमें अन्तर क्या है? मान लीजिये आपके पास दस पेज का कोई टेक्स्ट है जिसमें रोमन, देवनागरी, अरबी, गणित के चिन्ह आदि बहुत कुछ हैं। इन चिन्हों के यूनिकोड अलग-अलग होंगे। यहाँ ध्यान देने योग्य बात है कि कुछ संकेतों के ३२ बिट के यूनिकोड में शुरू में शून्य ही शून्य हैं (जैसे अंग्रेजी के संकेतों के लिये)। यदि शुरुआती शून्यों को हटा दिया जाय तो इन्हें केवल 8 बिट के द्वारा भी निरूपित किया जा सकता है और कहीं कोई भ्रम या कांफ्लिक्टकॉन्फ़्लिक्ट नहीं होगा। इसी तरहप्रकार रूसी, अरबी, हिब्रू आदि के यूनिकोड ऐसे हैं कि शून्य को छोड़ देने पर उन्हें प्राय: १६16 बिट = 2 बाइट से निरूपित किया जा सकता है। देवनागरी, जापानी, चीनी आदि को आरम्भिक शून्य हटाने के बाद प्राय: २४24 बिट = तीन बाइट से निरूपित किया जा सकता है। किन्तु बहुत से संकेत होंगे जिनमें आरम्भिक शून्य नहीं होंगे और उन्हें निरूपित करने के लिये चार बाइट ही लगेंगे।
# बिन्दु (5) में बताए गये काम को UTF-8, UTF-16 और UTF-32 थोड़ा अलग अलग ढंग से करते हैं। उदाहरण के लिये यूटीएफयूटीएफ़-8 क्या करता है कि कुछ लिपिचिह्नों के लिये 1 बाइट, कुछ के लिये 2 बाइट, कुछ के लिये तीन और चार बाइट इस्तेमाल करता है। लेकिन UTF-16 इसी काम के लिये १६ न्यूनतम बिटों का इस्तेमाल करता है। अर्थात जो चीजें UTF-8 में केवल एक बाइट जगह लेती थीं वे अब १६16 बिट == 2 बाइट के द्वारा निरूपित होंगी। जो UTF-8 में 2 बाइट लेतीं थी यूटीएफ-१६16 में भी दो ही लेंगी। किन्तु पहले जो संकेतदिसंकेतादि 3 बाइट या चार बाइट में निरूपित होते थे यूटीएफ-१६16 में ३२32 बिट =
4 बाइट के द्वारा निरूपित किये जायेंगे। (आपके पास बड़ी-बडी ईंटें हों और उनको बिना तोड़े खम्भा बनाना हो तो खम्भा ज्यादा बड़ा ही बनाया जा सकता है।)
# लगभग स्पष्ट है कि प्राय: UTF-8 में इनकोडिंग करने से UTF-16 की अपेक्षा कम बिट्स लगेंगे।
# इसके अलावा बहुत से पुराने सिस्टम १६16 बिट को हैंडिल करने में अक्षम थे। वे एकबार में केवल 8-बिट ही के साथ काम कर सकते थे। इस कारण भी UTF-8 को अधिक अपनाया गया। यह अधिक प्रयोग में आता है।
# UTF-16 और UTF-32 के पक्ष में अच्छाई यह है कि अब कम्प्यूटरों का हार्डवेयर ३२32 बिट या ६४64 बिट का हो गया है। इस कारण UTF-8 की फाइलों को 'प्रोसेस' करने में UTF-16, UTF-32 वाली फाइलों की अपेक्षा अधिक समय लगेगा।
 
== उपयोगी यूनिकोड वर्तमान स्थिती ==