अन्य वर्णमाला में वर्णों की तुलना में अंग्रेजी वर्णों को कम बाइट्स की आवश्यकता क्यों है?
जबकि हम में से अधिकांश ने कभी भी इसके बारे में सोचना बंद नहीं किया है, वर्णमाला वर्ण सभी बाइट्स की संख्या में समान आकार नहीं हैं जो उन्हें प्रतिनिधित्व करने के लिए लेता है। लेकिन ऐसा क्यों है? आज के SuperUser Q & A पोस्ट में एक जिज्ञासु पाठक के प्रश्न के उत्तर हैं.
आज का प्रश्न और उत्तर सत्र सुपरयूज़र के सौजन्य से आता है-स्टैक एक्सचेंज का एक उपखंड, क्यू एंड ए वेब साइटों का एक समुदाय-संचालित समूह है।.
विकिपीडिया के आंशिक ASCII चार्ट स्क्रीनशॉट.
प्रश्न
सुपरयूज़र रीडर khajvah जानना चाहता है कि अलग-अलग अल्फाबेट सहेजे जाने पर अलग-अलग मात्रा में डिस्क स्पेस क्यों लेते हैं:
जब मैं टेक्स्ट फाइल में 'a' डालता हूं और इसे सेव करता हूं, तो यह आकार में 2 बाइट्स बनाता है। लेकिन जब मैंने 'अर्मेनियाई वर्णमाला' ('अक्षर से एक अक्षर') जैसा अक्षर रखा, तो यह आकार में 3 बाइट बनाता है.
कंप्यूटर पर वर्णमाला के बीच अंतर क्या है? बचाए जाने पर अंग्रेजी कम जगह क्यों लेती है?
पत्र अक्षर हैं, सही? शायद नहीं! इस वर्णमाला के रहस्य का उत्तर क्या है?
उत्तर
सुपरयूजर योगदानकर्ताओं डॉकटोरो रीचर्ड और ernie हमारे लिए जवाब है। सबसे पहले, डॉकटोरो रीचर्ड:
मुख्यधारा के कंप्यूटरों में उपयोग के लिए विकसित की जाने वाली पहली एन्कोडिंग योजनाओं में से एक ASCII है (आदान प्रदान के लिएअमेरिकन मानक कोड सूचना) मानक। यह संयुक्त राज्य अमेरिका में 1960 के दशक में विकसित किया गया था.
अंग्रेजी वर्णमाला लैटिन वर्णमाला के भाग का उपयोग करती है (उदाहरण के लिए, अंग्रेजी में कुछ उच्चारण शब्द हैं)। मामले पर विचार न करते हुए उस वर्णमाला में 26 व्यक्तिगत पत्र हैं। और किसी भी योजना में व्यक्तिगत संख्या और विराम चिह्नों को भी मौजूद करना होगा जो अंग्रेजी वर्णमाला को एनकोड करने का दिखावा करते हैं.
1960 का दशक भी एक समय था जब कंप्यूटर में मेमोरी या डिस्क स्थान की मात्रा नहीं थी जो अब हमारे पास है। ASCII को सभी अमेरिकी कंप्यूटरों में कार्यात्मक वर्णमाला के मानक प्रतिनिधित्व के रूप में विकसित किया गया था। उस समय, प्रत्येक ASCII वर्ण को 8 बिट (1 बाइट) लंबा करने का निर्णय उस समय के तकनीकी विवरणों के कारण किया गया था (विकिपीडिया लेख में इस तथ्य का उल्लेख है कि छिद्रित टेप एक समय में 8 बिट्स को एक स्थिति में रखता है)। वास्तव में, मूल ASCII योजना को 7 बिट्स का उपयोग करके प्रेषित किया जा सकता है, और आठवें का उपयोग समता की जाँच के लिए किया जा सकता है। बाद के घटनाक्रमों ने मूल ASCII योजना का विस्तार किया जिसमें कई उच्चारण, गणितीय और टर्मिनल वर्ण शामिल थे.
दुनिया भर में हाल ही में कंप्यूटर के उपयोग में वृद्धि के साथ, विभिन्न भाषाओं के अधिक से अधिक लोगों के पास कंप्यूटर तक पहुंच थी। इसका मतलब था कि, प्रत्येक भाषा के लिए, नई एन्कोडिंग योजनाओं को विकसित किया जाना था, स्वतंत्र रूप से अन्य योजनाओं से, जो अलग-अलग भाषा टर्मिनलों से पढ़े जाने पर संघर्ष करेगी.
यूनिकोड सभी संभव सार्थक वर्णों को एक एकल सार वर्ण में विलय करके विभिन्न टर्मिनलों के अस्तित्व के समाधान के रूप में सामने आया।.
यूटीएफ -8 यूनिकोड वर्ण सेट को एनकोड करने का एक तरीका है। यह एक चर-चौड़ाई एन्कोडिंग है (अर्थात विभिन्न वर्णों के अलग-अलग आकार हो सकते हैं) और इसे पूर्व ASCII योजना के साथ पीछे की संगतता के लिए डिज़ाइन किया गया था। इस प्रकार, ASCII वर्ण सेट आकार में एक बाइट रहेगा जब तक कि कोई अन्य वर्ण आकार में दो या अधिक बाइट न हो। यूटीएफ -16 यूनिकोड वर्ण सेट को एनकोड करने का एक और तरीका है। UTF-8 की तुलना में, वर्णों को एक या दो 16-बिट कोड इकाइयों के एक सेट के रूप में एन्कोड किया गया है.
जैसा कि अन्य टिप्पणियों में कहा गया है, '' ए 'एक एकल बाइट पर कब्जा कर लेता है, जबकि' '' यूटीएफ -8 एनकोडिंग को दर्शाते हुए दो बाइट्स रखता है। मूल प्रश्न में अतिरिक्त बाइट अंत में एक नई रेखा चरित्र के अस्तित्व के कारण था.
Ernie से जवाब द्वारा पीछा किया:
1 बाइट 8 बिट्स है, और इस प्रकार 256 (2 ^ 8) विभिन्न मूल्यों तक का प्रतिनिधित्व कर सकते हैं.
इसके लिए अधिक संभावनाओं की आवश्यकता वाली भाषाओं के लिए, सरल 1 से 1 मैपिंग को बनाए नहीं रखा जा सकता है, इसलिए इस चरित्र को संग्रहीत करने के लिए अधिक डेटा की आवश्यकता होती है.
ध्यान दें कि आम तौर पर, अधिकांश एनकोडिंग ASCII वर्णों के लिए पहले 7 बिट्स (128 मान) का उपयोग करते हैं। यह 8 बिट या अधिक वर्णों के लिए 128 मान छोड़ता है। उच्चारण पात्रों, एशियाई भाषाओं, सिरिलिक आदि में जोड़ें और आप आसानी से देख सकते हैं कि सभी पात्रों को रखने के लिए 1 बाइट पर्याप्त नहीं है.
स्पष्टीकरण में कुछ जोड़ना है? टिप्पणियों में विचार व्यक्त करो। अन्य टेक-सेवी स्टैक एक्सचेंज उपयोगकर्ताओं से अधिक उत्तर पढ़ना चाहते हैं? पूरी चर्चा धागा यहाँ देखें.