अक्षर कूटन

कैरेक्टर एन्कोडिंग ग्राफिक्स कैरेक्टर (कंप्यूटिंग), विशेष रूप से भाषा के लिखित वर्णों को नंबर निर्दिष्ट करने की प्रक्रिया है, जिससे उन्हें डिजिटल इलेक्ट्रॉनिक्स कंप्यूटर का उपयोग करके डेटा स्टोरेज, डेटा संचार और कंप्यूटिंग की अनुमति मिलती है। संख्यात्मक मान जो एक वर्ण एन्कोडिंग बनाते हैं, कोड बिंदु के रूप में जाने जाते हैं और सामूहिक रूप से एक कोड स्थान, एक कोड पृष्ठ, या एक वर्ण मानचित्र (Windows) शामिल होते हैं।

ऑप्टिकल या इलेक्ट्रिकल टेलीग्राफी से जुड़े प्रारंभिक वर्ण कोड केवल लिखित भाषाओं में उपयोग किए जाने वाले वर्णों के एक सबसेट का प्रतिनिधित्व कर सकते हैं, कभी-कभी पत्र मामलों, अंक प्रणाली और कुछ विराम चिह्नों तक ही सीमित होते हैं। आधुनिक कंप्यूटर सिस्टम में डेटा के डिजिटल प्रतिनिधित्व की कम लागत अधिक विस्तृत वर्ण कोड (जैसे यूनिकोड) की अनुमति देती है जो कई लिखित भाषाओं में उपयोग किए जाने वाले अधिकांश वर्णों का प्रतिनिधित्व करते हैं। अंतरराष्ट्रीय स्तर पर स्वीकृत मानकों का उपयोग करते हुए वर्ण एन्कोडिंग इलेक्ट्रॉनिक रूप में पाठ के विश्वव्यापी आदान-प्रदान की अनुमति देता है।

इतिहास
चरित्र कोड का इतिहास मशीन-मध्यस्थ चरित्र-आधारित प्रतीकात्मक जानकारी की दूरी पर एक बार-उपन्यास विद्युत साधनों का उपयोग करके विकसित होने की आवश्यकता को दर्शाता है। शुरुआती कोड मैनुअल और हाथ से लिखे गए एन्कोडिंग और साइफरिंग सिस्टम पर आधारित थे, जैसे बेकन के सिफर, ब्रेल, अंतर्राष्ट्रीय समुद्री सिग्नल फ्लैग, और चीनी टेलीग्राफ कोड के लिए चीनी अक्षरों के 4-अंकीय एन्कोडिंग (हंस शेजेलरुप, 1869)। इलेक्ट्रिकल और इलेक्ट्रो-मैकेनिकल तकनीकों को अपनाने के साथ इन शुरुआती कोडों को शुरुआती मशीनों की नई क्षमताओं और सीमाओं के अनुकूल बनाया गया था। 1840 के दशक में पेश किया गया सबसे पुराना विद्युत-संचरित वर्ण कोड, मोर्स कोड, चर लंबाई के कोड उत्पन्न करने के लिए चार प्रतीकों (लघु सिग्नल, लंबी सिग्नल, छोटी जगह, लंबी जगह) की एक प्रणाली का उपयोग करता था। हालांकि मोर्स कोड का कुछ व्यावसायिक उपयोग मशीनरी के माध्यम से किया गया था, इसे अक्सर एक मैनुअल कोड के रूप में इस्तेमाल किया जाता था, जो टेलीग्राफ कुंजी पर हाथ से उत्पन्न होता है और कान से समझने योग्य होता है, और शौकिया रेडियो और गैर-दिशात्मक बीकन उपयोग में बना रहता है। अधिकांश कोड निश्चित प्रति-वर्ण लंबाई या निश्चित-लंबाई कोड (जैसे यूनिकोड) के चर-लंबाई अनुक्रम के होते हैं। कैरेक्टर एन्कोडिंग सिस्टम के सामान्य उदाहरणों में मोर्स कोड, बॉडॉट कोड, अमेरिकन स्टैंडर्ड कोड फॉर इंफॉर्मेशन इंटरचेंज (ASCII) और यूनिकोड शामिल हैं। यूनिकोड, एक अच्छी तरह से परिभाषित और एक्स्टेंसिबल एन्कोडिंग सिस्टम, ने पहले के अधिकांश वर्ण एन्कोडिंग को प्रतिस्थापित किया है, लेकिन वर्तमान में कोड विकास का मार्ग काफी प्रसिद्ध है।

बॉडॉट कोड, एक पांच-बिट एन्कोडिंग, 1870 में एमिल बॉडोट द्वारा बनाया गया था, 1874 में पेटेंट कराया गया था, 1901 में डोनाल्ड मरे द्वारा संशोधित किया गया था, और 1930 में CCITT द्वारा अंतर्राष्ट्रीय टेलीग्राफ अल्फाबेट नंबर 2 (ITA2) के रूप में मानकीकृत किया गया था। बॉडॉट नाम है ITA2 और इसके कई प्रकारों पर ग़लती से लागू किया गया है। ITA2 को कई कमियों का सामना करना पड़ा और अक्सर कई उपकरण निर्माताओं द्वारा सुधार किया गया था, कभी-कभी संगतता मुद्दे पैदा करते थे। 1959 में अमेरिकी सेना ने अपने फील्डटा कोड को परिभाषित किया, एक छह या सात-बिट कोड, जिसे यू.एस. सेना सिग्नल कोर द्वारा पेश किया गया था। जबकि फील्डटा ने तत्कालीन आधुनिक मुद्दों में से कई को संबोधित किया (उदाहरण के लिए मशीन संयोजन के लिए व्यवस्थित पत्र और अंक कोड), फील्डटा अपने लक्ष्यों से कम हो गया और अल्पकालिक था। 1963 में पहला ASCII (अमेरिकन स्टैंडर्ड कोड फॉर इंफॉर्मेशन इंटरचेंज) कोड जारी किया गया था (X3.4-1963) ASCII कमेटी (जिसमें फील्डटा कमेटी के कम से कम एक सदस्य, W. F. Leubbert शामिल थे) ने फील्डटा की अधिकांश कमियों को संबोधित किया।, एक सरल कोड का उपयोग कर। कई परिवर्तन सूक्ष्म थे, जैसे कि कुछ संख्यात्मक श्रेणियों के भीतर कोलैटेबल कैरेक्टर सेट। ASCII63 एक सफलता थी, जिसे व्यापक रूप से उद्योग द्वारा अपनाया गया था, और 1967 के ASCII कोड के अनुवर्ती मुद्दे के साथ (जिसमें लोअर-केस अक्षरों को जोड़ा गया और कुछ नियंत्रण कोड मुद्दों को ठीक किया गया) ASCII67 को काफी व्यापक रूप से अपनाया गया था। ASCII67 की अमेरिकी-केंद्रित प्रकृति को यूरोपीय ECMA-6 मानक में कुछ हद तक संबोधित किया गया था।

हरमन होलेरिथ ने 19वीं शताब्दी के अंत में जनगणना के आंकड़ों का विश्लेषण करने के लिए पंच कार्ड डेटा एन्कोडिंग का आविष्कार किया। प्रारंभ में, प्रत्येक छेद की स्थिति एक अलग डेटा तत्व का प्रतिनिधित्व करती थी, लेकिन बाद में, संख्यात्मक जानकारी को निचली पंक्तियों को 0 से 9 तक क्रमांकित करके एन्कोड किया गया था, जिसमें कॉलम में एक पंच अपनी पंक्ति संख्या का प्रतिनिधित्व करता था। बाद में वर्णमाला डेटा को प्रति कॉलम एक से अधिक पंच की अनुमति देकर एन्कोड किया गया था। इलेक्ट्रोमैकेनिकल टेबुलेटिंग मशीन मशीन के माध्यम से कार्ड की गति के सापेक्ष दालों के समय द्वारा आंतरिक रूप से तारीख का प्रतिनिधित्व करती है। जब आईबीएम इलेक्ट्रॉनिक प्रोसेसिंग में गया, आईबीएम 603 इलेक्ट्रॉनिक मल्टीप्लायर से शुरू हुआ, तो उसने कई तरह की बाइनरी एन्कोडिंग योजनाओं का इस्तेमाल किया जो पंच कार्ड कोड से जुड़ी हुई थीं।

IBM का बाइनरी-कोडेड दशमलव#IBM और BCD (BCD (कैरेक्टर एन्कोडिंग)) एक छह-बिट एन्कोडिंग स्कीम थी, जिसका उपयोग IBM ने 1953 में अपने IBM 702 में किया था। और आईबीएम 704 कंप्यूटर, और इसके बाद के आईबीएम 700/7000 श्रृंखला और आईबीएम 1400 श्रृंखला, साथ ही साथ संबद्ध बाह्य उपकरणों में। पंच किए गए कार्ड कोड के बाद से केवल अनुमत अंक, अपर-केस अंग्रेजी अक्षर और कुछ विशेष वर्ण, छह बिट पर्याप्त थे। बीसीडी ने वर्णमाला और विशेष वर्णों को शामिल करने के लिए मौजूदा सरल चार-बिट संख्यात्मक एन्कोडिंग का विस्तार किया, इसे आसानी से पंच-कार्ड एन्कोडिंग में मैप किया जो पहले से ही व्यापक उपयोग में था। आईबीएम कोड मुख्य रूप से आईबीएम उपकरण के साथ उपयोग किए जाते थे; युग के अन्य कंप्यूटर विक्रेताओं के पास अपने स्वयं के वर्ण कोड थे, अक्सर छह-बिट, लेकिन आमतौर पर आईबीएम उपकरण पर निर्मित टेप को पढ़ने की क्षमता रखते थे। बीसीडी आईबीएम के ईबीसीडीआईसी (आमतौर पर ईबीसीडीआईसी के रूप में संक्षिप्त) का अग्रदूत था, आईबीएम सिस्टम / 360 के लिए 1963 में विकसित एक आठ-बिट एन्कोडिंग योजना जिसमें एक बड़ा वर्ण सेट था, जिसमें लोअर केस लेटर्स भी शामिल थे।

ऐसे सेटों की सीमाएं जल्द ही स्पष्ट हो गईं, और उन्हें विस्तारित करने के लिए कई तदर्थ तरीके विकसित किए गए। पूर्वी एशियाई लिपियों के सीजेके वर्ण परिवार सहित विभिन्न भाषाओं के लिए अधिक लेखन प्रणालियों का समर्थन करने की आवश्यकता, पात्रों की एक बड़ी संख्या के लिए समर्थन की आवश्यकता है और पिछले तदर्थ दृष्टिकोण के बजाय वर्ण एन्कोडिंग के लिए एक व्यवस्थित दृष्टिकोण की मांग की। सार्वभौमिक रूप से विनिमेय वर्ण एन्कोडिंग विकसित करने की कोशिश में, 1980 के दशक में शोधकर्ताओं को इस दुविधा का सामना करना पड़ा कि, एक ओर, अतिरिक्त वर्णों को समायोजित करने के लिए और अधिक बिट्स जोड़ना आवश्यक लग रहा था, लेकिन दूसरी ओर, अपेक्षाकृत छोटे वर्ण सेट के उपयोगकर्ताओं के लिए। लैटिन वर्णमाला (जो अभी भी अधिकांश कंप्यूटर उपयोगकर्ताओं का गठन करते हैं), वे अतिरिक्त बिट्स उस समय के दुर्लभ और महंगे कंप्यूटिंग संसाधनों का एक बड़ा अपशिष्ट थे (क्योंकि वे हमेशा ऐसे उपयोगकर्ताओं के लिए शून्य हो जाते थे)। 1985 में, औसत व्यक्तिगत कंप्यूटर उपयोगकर्ता की हार्ड डिस्क ड्राइव केवल लगभग 10 मेगाबाइट स्टोर कर सकती थी, और थोक बाजार में इसकी कीमत लगभग US$250 थी (और खुदरा में अलग से खरीदे जाने पर बहुत अधिक), इसलिए उस समय हर बिट की गिनती करना बहुत महत्वपूर्ण था।

समझौता समाधान जो अंततः यूनिकोड में पाया और विकसित किया गया था, इस धारणा को तोड़ना था (टेलीग्राफ कोड पर वापस डेटिंग) कि प्रत्येक वर्ण हमेशा बिट्स के एक विशेष अनुक्रम से सीधे मेल खाना चाहिए। इसके बजाय, वर्णों को पहले अमूर्त संख्याओं के रूप में एक सार्वभौमिक मध्यवर्ती प्रतिनिधित्व के लिए मैप किया जाएगा जिसे कोड बिंदु कहा जाता है। कोड बिंदुओं को तब विभिन्न तरीकों से और संदर्भ के आधार पर प्रति वर्ण (कोड इकाइयों) की विभिन्न डिफ़ॉल्ट संख्याओं के साथ दर्शाया जाएगा। कोड इकाई की लंबाई से अधिक कोड बिंदुओं को एन्कोड करने के लिए, जैसे कि आठ-बिट इकाइयों के लिए 256 से ऊपर, समाधान चर-चौड़ाई वाले एन्कोडिंग को लागू करना था जहां एक एस्केप अनुक्रम संकेत देगा कि बाद के बिट्स को एक उच्च कोड बिंदु के रूप में पार्स किया जाना चाहिए।

शब्दावली

 * वर्ण एन्कोडिंग से संबंधित शब्दावली:
 * एक चरित्र पाठ की एक न्यूनतम इकाई है जिसका अर्थ मूल्य होता है।
 * एक वर्ण सेट वर्णों का एक संग्रह है जिसका उपयोग कई भाषाओं द्वारा किया जा सकता है। उदाहरण: लैटिन वर्ण सेट का उपयोग अंग्रेजी और अधिकांश यूरोपीय भाषाओं द्वारा किया जाता है, हालांकि ग्रीक वर्ण सेट का उपयोग केवल ग्रीक भाषा द्वारा किया जाता है।
 * एक कोडित वर्ण सेट एक वर्ण सेट है जिसमें प्रत्येक वर्ण एक अद्वितीय संख्या से मेल खाता है।
 * कोडित वर्ण सेट का कोड बिंदु वर्ण सेट या कोड स्थान में कोई भी अनुमत मान है।
 * एक कोड स्थान पूर्णांकों की एक श्रेणी है जिसके मान कोड बिंदु होते हैं
 * एक कोड इकाई वर्ण एन्कोडिंग योजना का शब्द आकार है, जैसे कि 7-बिट, 8-बिट, 16-बिट। कुछ योजनाओं में, कुछ वर्णों को कई कोड इकाइयों का उपयोग करके एन्कोड किया जाता है, जिसके परिणामस्वरूप एक चर-लंबाई एन्कोडिंग होती है। एक कोड इकाई को कुछ दस्तावेज़ों में कोड मान के रूप में संदर्भित किया जाता है।
 * चरित्र प्रदर्शनों की सूची (पात्रों का सार सेट):

चरित्र प्रदर्शनों की सूची लैटिन, सिरिलिक, चीनी, कोरियाई, जापानी, हिब्रू और अरामी सहित विभिन्न प्रकार की लिपियों में पाए जाने वाले दस लाख से अधिक वर्णों का एक सार सेट है।

अन्य प्रतीकों जैसे संगीत संकेतन को भी चरित्र प्रदर्शनों की सूची में शामिल किया गया है। यूनिकोड और जीबी 18030 दोनों मानकों में एक चरित्र प्रदर्शनों की सूची है। जैसे ही एक मानक में नए वर्ण जोड़े जाते हैं, अन्य मानक भी समानता बनाए रखने के लिए उन वर्णों को जोड़ते हैं।

कोड इकाई का आकार विशिष्ट एन्कोडिंग के लिए बिट माप के बराबर है:
 * US-ASCII में एक कोड इकाई में 7 बिट होते हैं;
 * UTF-8, EBCDIC और GB 18030 में एक कोड इकाई में 8 बिट होते हैं;
 * UTF-16 में एक कोड इकाई में 16 बिट होते हैं;
 * UTF-32 में एक कोड इकाई में 32 बिट होते हैं।

ab̲c𐐀 अक्षरों की एक स्ट्रिंग (कंप्यूटर विज्ञान) पर विचार करें, यानी एक स्ट्रिंग जिसमें यूनिकोड संयोजन वर्ण होता है साथ ही एक पूरक चरित्र  इस स्ट्रिंग में कई प्रतिनिधित्व हैं जो तार्किक रूप से समकक्ष हैं, फिर भी प्रत्येक परिस्थितियों के विविध सेट या आवश्यकताओं की श्रेणी के अनुकूल है: विशेष रूप से अंतिम वर्ण पर ध्यान दें, जिसे एक 1 32-बिट मान, 2 16-बिट मान के साथ दर्शाया गया है। या 4 8-बिट मान। यद्यपि उनमें से प्रत्येक रूप ग्लिफ़ का प्रतिनिधित्व करने के लिए समान बिट्स (32) का उपयोग करता है, वास्तविक संख्यात्मक बाइट मान और उनकी व्यवस्था पूरी तरह से असंबंधित दिखाई देती है।
 * एक कोड इकाई का उदाहरण:
 * चार वर्ण_ (कंप्यूटिंग):
 * a, b̲, c, 𐐀
 * पांच अंगूर:
 * a, b, _, c, 𐐀
 * पांच यूनिकोड कोड बिंदु:
 * U+0061, U+0062, U+0332, U+0063, U+10400
 * पांच UTF-32 कोड इकाइयाँ (32-बिट पूर्णांक मान):
 * 0x00000061, 0x00000062, 0x00000332, 0x00000063, 0x00010400
 * छह UTF-16 कोड इकाइयाँ (16-बिट पूर्णांक)
 * 0x0061, 0x0062, 0x0332, 0x0063, 0xd801, 0xdc00
 * नौ यूटीएफ -8 कोड इकाइयां (8-बिट मान, या बाइट)
 * 0x61, 0x62, 0xCC, 0xB2, 0x63, 0xf0, 0x90, 0x90, 0x80

यूनिकोड में एक चरित्र को संदर्भित करने के लिए सम्मेलन 'यू +' से शुरू होता है और उसके बाद हेक्साडेसिमल में कोडपॉइंट मान होता है। यूनिकोड मानक के लिए मान्य कोड बिंदुओं की श्रेणी U+0000 से U+10FFFF है, समावेशी, 17 प्लेन (यूनिकोड) में विभाजित है, जिसे 0 से 16 की संख्या से पहचाना जाता है। U+0000 से U+FFFF की श्रेणी में वर्ण हैं प्लेन 0, जिसे प्लेन (यूनिकोड) #बेसिक मल्टीलिंगुअल प्लेन (BMP) कहा जाता है। इस विमान में सबसे अधिक उपयोग किए जाने वाले वर्ण हैं। अन्य तलों में U+10000 से U+10FFFF श्रेणी के वर्णों को पूरक वर्ण कहा जाता है।
 * कोड बिंदु:

निम्न तालिका कोड बिंदु मानों के उदाहरण दिखाती है: एक कोड बिंदु को कोड इकाइयों के अनुक्रम द्वारा दर्शाया जाता है। मैपिंग को एन्कोडिंग द्वारा परिभाषित किया गया है। इस प्रकार, कोड बिंदु का प्रतिनिधित्व करने के लिए आवश्यक कोड इकाइयों की संख्या एन्कोडिंग पर निर्भर करती है:
 * UTF-8: कोड एक, दो, तीन या चार कोड इकाइयों के अनुक्रम के लिए मानचित्र को इंगित करता है।
 * UTF-16: कोड इकाइयाँ 8-बिट कोड इकाइयों से दोगुनी लंबी होती हैं। इसलिए, U+10000 से कम स्केलर मान वाला कोई भी कोड बिंदु एकल कोड इकाई के साथ एन्कोड किया गया है। U+10000 या अधिक मान वाले कोड बिंदुओं में से प्रत्येक के लिए दो कोड इकाइयों की आवश्यकता होती है। कोड इकाइयों के इन युग्मों का UTF-16 में एक अनूठा शब्द है: UTF-16#cite note-Unicode7Ch3s8-5| यूनिकोड सरोगेट जोड़े।
 * UTF-32: 32-बिट कोड इकाई इतनी बड़ी है कि प्रत्येक कोड बिंदु को एकल कोड इकाई के रूप में दर्शाया जाता है।
 * जीबी 18030: छोटी कोड इकाइयों के कारण प्रति कोड बिंदु पर कई कोड इकाइयां आम हैं। कोड बिंदुओं को एक, दो या चार कोड इकाइयों में मैप किया जाता है।

यूनिकोड एन्कोडिंग मॉडल
यूनिकोड और इसके समानांतर मानक, ISO/IEC 10646 यूनिवर्सल कैरेक्टर सेट, एक साथ मिलकर एक आधुनिक, एकीकृत वर्ण एन्कोडिंग बनाते हैं। वर्णों को सीधे ऑक्टेट (बाइट्स) में मैप करने के बजाय, वे अलग-अलग परिभाषित करते हैं कि कौन से वर्ण उपलब्ध हैं, संबंधित प्राकृतिक संख्याएं (कोड बिंदु), उन संख्याओं को निश्चित आकार की प्राकृतिक संख्याओं (कोड इकाइयों) की श्रृंखला के रूप में कैसे एन्कोड किया जाता है, और अंत में वे कैसे इकाइयों को ऑक्टेट की एक धारा के रूप में एन्कोड किया गया है। इस अपघटन का उद्देश्य वर्णों का एक सार्वभौमिक सेट स्थापित करना है जिसे विभिन्न तरीकों से एन्कोड किया जा सकता है। इस मॉडल का सही ढंग से वर्णन करने के लिए वर्ण सेट और वर्ण एन्कोडिंग की तुलना में अधिक सटीक शब्दों की आवश्यकता होती है। आधुनिक मॉडल में प्रयुक्त शब्द इस प्रकार हैं:

एक चरित्र प्रदर्शनों की सूची एक प्रणाली का समर्थन करने वाले अमूर्त वर्णों का पूरा सेट है। प्रदर्शनों की सूची को बंद किया जा सकता है, अर्थात एक नया मानक बनाए बिना किसी भी परिवर्धन की अनुमति नहीं है (जैसा कि ASCII और अधिकांश ISO-8859 श्रृंखला के मामले में है), या यह खुला हो सकता है, परिवर्धन की अनुमति देता है (जैसा कि यूनिकोड के मामले में है) सीमित हद तक विंडोज़ कोड पेज)। किसी दिए गए प्रदर्शनों की सूची में वर्ण उन निर्णयों को दर्शाते हैं जो लेखन प्रणालियों को बुनियादी सूचना इकाइयों में विभाजित करने के तरीके के बारे में किए गए हैं। लैटिन वर्णमाला, ग्रीक वर्णमाला और सिरिलिक वर्णमाला के मूल रूपों को अक्षरों, अंकों, विराम चिह्नों और कुछ विशेष वर्णों में विभाजित किया जा सकता है, जैसे कि अंतरिक्ष, जो सभी को सरल रैखिक अनुक्रमों में व्यवस्थित किया जा सकता है जो प्रदर्शित होते हैं उसी क्रम में उन्हें पढ़ा जाता है। लेकिन इन अक्षरों के साथ भी, विशेषक चिह्न एक जटिलता पैदा करते हैं: उन्हें या तो एक वर्ण के भाग के रूप में माना जा सकता है जिसमें एक अक्षर और विशेषक (एक पूर्वनिर्मित वर्ण के रूप में जाना जाता है), या अलग वर्ण के रूप में माना जा सकता है। पूर्व एक बहुत सरल टेक्स्ट हैंडलिंग सिस्टम की अनुमति देता है लेकिन बाद वाला टेक्स्ट में किसी भी अक्षर/विशेषक संयोजन का उपयोग करने की अनुमति देता है। टाइपोग्राफिक लिगचर इसी तरह की समस्याएं पैदा करता है। अन्य लेखन प्रणाली, जैसे कि अरबी और हिब्रू, को अधिक जटिल चरित्र प्रदर्शनों के साथ दर्शाया जाता है, क्योंकि द्विदिश पाठ और ग्लिफ़ जैसी चीजों को समायोजित करने की आवश्यकता होती है जो विभिन्न स्थितियों के लिए अलग-अलग तरीकों से एक साथ जुड़ते हैं।

एक कोडित वर्ण सेट (CCS) एक फ़ंक्शन (गणित) है जो वर्णों को कोड बिंदुओं पर मैप करता है (प्रत्येक कोड बिंदु एक वर्ण का प्रतिनिधित्व करता है)। उदाहरण के लिए, किसी दिए गए प्रदर्शनों की सूची में, लैटिन वर्णमाला में बड़े अक्षर A को कोड बिंदु 65, वर्ण B से 66, और इसी तरह से दर्शाया जा सकता है। एकाधिक कोडित वर्ण सेट समान प्रदर्शनों की सूची साझा कर सकते हैं; उदाहरण के लिए आईएसओ/आईईसी 8859-1 और आईबीएम कोड पेज 037 और 500 सभी एक ही प्रदर्शनों की सूची को कवर करते हैं लेकिन उन्हें अलग-अलग कोड बिंदुओं पर मैप करते हैं।

एक कैरेक्टर एन्कोडिंग फॉर्म (सीईएफ) एक सिस्टम में स्टोरेज को सुविधाजनक बनाने के लिए कोड पॉइंट्स को कोड यूनिट्स के लिए मैपिंग है जो निश्चित लंबाई (यानी व्यावहारिक रूप से किसी भी कंप्यूटर सिस्टम) के बिट अनुक्रमों के रूप में संख्याओं का प्रतिनिधित्व करता है। उदाहरण के लिए, एक प्रणाली जो 16-बिट इकाइयों में संख्यात्मक जानकारी संग्रहीत करती है, प्रत्येक इकाई में केवल 0 से 65,535 तक कोड बिंदुओं का प्रतिनिधित्व कर सकती है, लेकिन बड़े कोड बिंदु (जैसे, 65,536 से 1.4 मिलियन) को कई 16-बिट इकाइयों का उपयोग करके दर्शाया जा सकता है। यह पत्राचार एक सीईएफ द्वारा परिभाषित किया गया है।

इसके बाद, एक वर्ण एन्कोडिंग योजना (सीईएस) एक ऑक्टेट-आधारित फ़ाइल सिस्टम पर भंडारण की सुविधा या ऑक्टेट-आधारित नेटवर्क पर संचरण की सुविधा के लिए ऑक्टेट के अनुक्रम में कोड इकाइयों की मैपिंग है। सरल वर्ण एन्कोडिंग योजनाओं में UTF-8, UTF-16BE, UTF-32BE, UTF-16LE या UTF-32LE शामिल हैं; यूटीएफ-16, यूटीएफ-32 और आईएसओ/आईईसी 2022 जैसी मिश्रित वर्ण एन्कोडिंग योजनाएं, बाइट ऑर्डर मार्क या एस्केप सीक्वेंस का उपयोग करके कई सरल योजनाओं के बीच स्विच करती हैं; कंप्रेसिंग स्कीम्स प्रति कोड यूनिट (जैसे यूनिकोड के लिए स्टैंडर्ड कंप्रेशन स्कीम, यूनिकोड के लिए बाइनरी ऑर्डर्ड कंप्रेशन और पुनीकोड) में उपयोग किए जाने वाले बाइट्स की संख्या को कम करने का प्रयास करती हैं।

हालांकि UTF-32BE एक सरल CES है, यूनिकोड के साथ काम करने वाले अधिकांश सिस्टम या तो UTF-8 का उपयोग करते हैं, जो कि निश्चित-चौड़ाई वाले ASCII के साथ पश्चगामी संगतता है और यूनिकोड कोड को ऑक्टेट के चर-चौड़ाई अनुक्रमों या UTF-16BE को मैप करता है, जो पिछड़ा हुआ है। निश्चित-चौड़ाई वाले UCS-2BE के साथ संगतता और यूनिकोड कोड 16-बिट शब्दों के चर-चौड़ाई अनुक्रमों को इंगित करता है। विस्तृत चर्चा के लिए यूनिकोड एनकोडिंग की तुलना देखें।

अंत में, एक उच्च-स्तरीय प्रोटोकॉल हो सकता है जो यूनिकोड वर्ण के विशेष संस्करण का चयन करने के लिए अतिरिक्त जानकारी प्रदान करता है, विशेष रूप से जहां क्षेत्रीय संस्करण हैं जो यूनिकोड में समान वर्ण के रूप में 'एकीकृत' हैं। एक्सएमएल विशेषता एक्सएमएल: लैंग एक उदाहरण है।

यूनिकोड मॉडल ऐतिहासिक प्रणालियों के लिए कैरेक्टर मैप शब्द का उपयोग करता है जो सीधे बाइट्स के अनुक्रम के लिए वर्णों का एक क्रम निर्दिष्ट करता है, जिसमें सभी को शामिल किया जाता है।सीसीएस, सीईएफ और सीईएस परतों का एल।

कैरेक्टर सेट, कैरेक्टर मैप्स और कोड पेज
ऐतिहासिक रूप से, शब्द वर्ण एन्कोडिंग, वर्ण मानचित्र, वर्ण सेट और कोड पृष्ठ कंप्यूटर विज्ञान में पर्यायवाची थे, क्योंकि एक ही मानक वर्णों के प्रदर्शनों की सूची को निर्दिष्ट करेगा और उन्हें कोड इकाइयों की एक धारा में कैसे एन्कोड किया जाना था - आमतौर पर एक वर्ण के साथ प्रति कोड इकाई। लेकिन अब शब्दों से संबंधित लेकिन अलग-अलग अर्थ हैं, कई अलग-अलग एन्कोडिंग सिस्टम के बारे में लिखते और एकीकृत करते समय मानक निकायों द्वारा सटीक शब्दावली का उपयोग करने के प्रयासों के कारण। भले ही, शब्द अभी भी एक दूसरे के स्थान पर उपयोग किए जाते हैं, चरित्र सेट लगभग सर्वव्यापी होने के साथ।

एक 'कोड पेज' का अर्थ आमतौर पर बाइट ओरिएंटेड | बाइट-ओरिएंटेड एन्कोडिंग होता है, लेकिन एन्कोडिंग के कुछ सूट (विभिन्न लिपियों को कवर करने) के संबंध में, जहां कई वर्ण समान कोड बिंदु को अधिकांश या सभी कोड पेजों में साझा करते हैं। जाने-माने कोड पेज सूट विंडोज (विंडोज-1252 पर आधारित) और आईबीएम/डॉस (कोड पेज 437 पर आधारित) हैं, विवरण के लिए विंडोज कोड पेज देखें। अधिकांश, लेकिन सभी नहीं, कोड पेज के रूप में संदर्भित एन्कोडिंग सिंगल-बाइट एन्कोडिंग हैं (लेकिन बाइट आकार पर ऑक्टेट (कंप्यूटिंग) देखें।)

आईबीएम का कैरेक्टर डेटा रिप्रेजेंटेशन आर्किटेक्चर (सीडीआरए) कोडित कैरेक्टर सेट आइडेंटिफायर (सीसीएसआईडी) के साथ संस्थाओं को नामित करता है, जिनमें से प्रत्येक को विभिन्न रूप से एक चारसेट, कैरेक्टर सेट, कोड पेज या चार्मैप कहा जाता है।

शब्द कोड पेज यूनिक्स या लिनक्स में नहीं होता है, जहां चार्मैप को प्राथमिकता दी जाती है, आमतौर पर लोकेशंस के बड़े संदर्भ में।


 * 1) CCS के विपरीत, एक वर्ण एन्कोडिंग अमूर्त वर्णों से लेकर कोड शब्दों तक का एक नक्शा है। HTTP (और MIME) भाषा में एक वर्ण सेट वर्ण एन्कोडिंग के समान है (लेकिन CCS के समान नहीं)।

लीगेसी सिस्टम एन्कोडिंग एक ऐसा शब्द है जिसका उपयोग कभी-कभी पुराने वर्ण एन्कोडिंग को चिह्नित करने के लिए किया जाता है, लेकिन अर्थ की अस्पष्टता के साथ। इसका अधिकांश उपयोग यूनिकोड के संदर्भ में है, जहां यह एन्कोडिंग को संदर्भित करता है जो सभी यूनिकोड कोड बिंदुओं को कवर करने में विफल रहता है, या अधिक सामान्यतः, कुछ भिन्न वर्ण प्रदर्शनों की सूची का उपयोग करते हुए: एक यूनिकोड वर्ण का प्रतिनिधित्व करने वाले कई कोड बिंदु, या इसके विपरीत (उदाहरण के लिए कोड पृष्ठ 437 देखें)। कुछ स्रोत एन्कोडिंग को केवल विरासत के रूप में संदर्भित करते हैं क्योंकि यह यूनिकोड से पहले था। सभी विंडोज कोड पेजों को आमतौर पर विरासत के रूप में संदर्भित किया जाता है, दोनों क्योंकि वे यूनिकोड के पूर्ववर्ती हैं और क्योंकि वे सभी 2 का प्रतिनिधित्व करने में असमर्थ हैं21 संभव यूनिकोड कोड अंक।

वर्ण एन्कोडिंग अनुवाद
उपयोग में कई वर्ण एन्कोडिंग विधियों (और संग्रहीत डेटा के साथ पिछड़े संगतता की आवश्यकता) के परिणामस्वरूप, डेटा ट्रांसकोडिंग के रूप में एन्कोडिंग योजनाओं के बीच डेटा का अनुवाद करने के लिए कई कंप्यूटर प्रोग्राम विकसित किए गए हैं। इनमें से कुछ का उल्लेख नीचे किया गया है।

क्रॉस-प्लेटफ़ॉर्म: यूनिक्स जैसा: माइक्रोसॉफ़्ट विंडोज़:
 * वेब ब्राउज़र - अधिकांश आधुनिक वेब ब्राउज़र में स्वचालित वर्ण एन्कोडिंग डिटेक्शन की सुविधा होती है। फ़ायरफ़ॉक्स 3 पर, उदाहरण के लिए, व्यू/कैरेक्टर एन्कोडिंग सबमेनू देखें।
 * iconv - एन्कोडिंग परिवर्तित करने के लिए प्रोग्राम और मानकीकृत API
 * luit - प्रोग्राम जो इनपुट और आउटपुट के एन्कोडिंग को अंतःक्रियात्मक रूप से चलने वाले प्रोग्राम में परिवर्तित करता है
 * Convert_encoding.py - मनमाना एन्कोडिंग और लाइन एंडिंग के बीच टेक्स्ट फ़ाइलों को कनवर्ट करने के लिए पायथन आधारित उपयोगिता।
 * decodeh.py - एक स्ट्रिंग के एन्कोडिंग का अनुमान लगाने के लिए एल्गोरिदम और मॉड्यूल।
 * यूनिकोड के लिए अंतर्राष्ट्रीय घटक - वर्णसेट रूपांतरण करने के लिए सी और जावा पुस्तकालयों का एक सेट। uconv का उपयोग ICU4C से किया जा सकता है।
 * chardet - यह मोज़िला स्वचालित-एन्कोडिंग-पहचान कोड का पायथन कंप्यूटर भाषा में अनुवाद है।
 * यूनिक्स फ़ाइल (कमांड) कमांड के नए संस्करण कैरेक्टर एन्कोडिंग (सिगविन पर भी उपलब्ध) का एक बुनियादी पता लगाने का प्रयास करते हैं।
 * charset - C++/उपयोगकर्ता-परिभाषित धाराओं के बीच कनवर्ट करने के लिए सरल इंटरफ़ेस के साथ C++ टेम्प्लेट लाइब्रेरी। चारसेट ने कई कैरेक्टर-सेट को परिभाषित किया है और आपको एंडियननेस के समर्थन के साथ यूनिकोड प्रारूपों का उपयोग करने की अनुमति देता है।
 * cmv - फ़ाइल नाम ट्रांसकोडिंग के लिए सरल उपकरण।
 * convmv - फ़ाइल नाम को एक एन्कोडिंग से दूसरे एन्कोडिंग में कनवर्ट करें।
 * cstocs - चेक और स्लोवाक भाषाओं के लिए फ़ाइल सामग्री को एक एन्कोडिंग से दूसरे में कनवर्ट करें।
 * enca - दी गई टेक्स्ट फ़ाइलों के लिए एनकोडिंग का विश्लेषण करता है।
 * रिकोड - फ़ाइल सामग्री को एक एन्कोडिंग से दूसरे में कनवर्ट करें
 * utrac - फ़ाइल सामग्री को एक एन्कोडिंग से दूसरे में कनवर्ट करें।
 * Encoding.Convert - .NET API
 * MultiByteToWideChar/WideCharToMultiByte - ANSI से यूनिकोड और यूनिकोड से ANSI में कनवर्ट करें
 * सीएससीवीटी - चरित्र सेट रूपांतरण उपकरण
 * enca - दी गई टेक्स्ट फ़ाइलों के लिए एनकोडिंग का विश्लेषण करता है।

यह भी देखें

 * प्रतिशत एन्कोडिंग
 * ऑल्ट कोड
 * HTML में कैरेक्टर एनकोडिंग
 * :श्रेणी:चरित्र एन्कोडिंग - सामान्य रूप से वर्ण एन्कोडिंग से संबंधित लेख
 * :श्रेणी:चरित्र सेट - विशिष्ट वर्ण एन्कोडिंग का विवरण देने वाले लेख
 * हेक्साडेसिमल#हेक्साडेसिमल का प्रतिनिधित्व करना
 * मोजीबेक - कैरेक्टर सेट मिसमैप।
 * Mojikyo - एक प्रणाली (ग्लाइफ सेट) जिसमें 100,000 से अधिक चीनी चरित्र चित्र शामिल हैं, आधुनिक और प्राचीन, लोकप्रिय और अस्पष्ट।
 * प्रस्तुति अंश
 * TRON (एन्कोडिंग), TRON प्रोजेक्ट का हिस्सा, एक एन्कोडिंग सिस्टम है जो हान यूनिफिकेशन का उपयोग नहीं करता है; इसके बजाय, यह वर्णों के 16-बिट विमानों के बीच स्विच करने के लिए नियंत्रण कोड का उपयोग करता है।
 * यूनिवर्सल कैरेक्टर सेट कैरेक्टर
 * वर्णसेट सूँघना - कुछ अनुप्रयोगों में उपयोग किया जाता है जब वर्ण एन्कोडिंग मेटाडेटा उपलब्ध नहीं होता है

सामान्य वर्ण एन्कोडिंग

 * आईएसओ/आईईसी 646
 * ASCII
 * ईबीसीडीआईसी
 * आईएसओ/आईईसी 8859:
 * आईएसओ/आईईसी 8859-1|आईएसओ 8859-1 पश्चिमी यूरोप
 * आईएसओ/आईईसी 8859-2|आईएसओ 8859-2 पश्चिमी और मध्य यूरोप
 * ISO/IEC 8859-3|ISO 8859-3 पश्चिमी यूरोप और दक्षिण यूरोपीय (तुर्की, माल्टीज़ प्लस एस्पेरांतो)
 * ISO/IEC 8859-4|ISO 8859-4 पश्चिमी यूरोप और बाल्टिक देश (लिथुआनिया, एस्टोनिया, लातविया और लैप)
 * आईएसओ/आईईसी 8859-5|आईएसओ 8859-5 सिरिलिक वर्णमाला
 * आईएसओ/आईईसी 8859-6|आईएसओ 8859-6 अरबी
 * आईएसओ/आईईसी 8859-7|आईएसओ 8859-7 ग्रीक
 * आईएसओ/आईईसी 8859-8|आईएसओ 8859-8 हिब्रू
 * आईएसओ/आईईसी 8859-9|आईएसओ 8859-9 पश्चिमी यूरोप संशोधित तुर्की चरित्र सेट के साथ
 * आईएसओ/आईईसी 8859-10|आईएसओ 8859-10 पश्चिमी यूरोप नॉर्डिक भाषाओं के लिए युक्तियुक्त वर्ण सेट के साथ, जिसमें संपूर्ण आइसलैंडिक सेट शामिल है
 * आईएसओ/आईईसी 8859-11|आईएसओ 8859-11 थाई
 * आईएसओ/आईईसी 8859-13|आईएसओ 8859-13 बाल्टिक भाषाएं प्लस पोलिश
 * आईएसओ/आईईसी 8859-14|आईएसओ 8859-14 सेल्टिक भाषाएं (आयरिश गेलिक, स्कॉटिश, वेल्श)
 * ISO/IEC 8859-15|ISO 8859-15 ने ISO 8859-1 में यूरो चिह्न और अन्य युक्तिकरण जोड़े
 * आईएसओ/आईईसी 8859-16|आईएसओ 8859-16 मध्य, पूर्वी और दक्षिणी यूरोपीय भाषाएं (अल्बानियाई, बोस्नियाई, क्रोएशियाई, हंगेरियन, पोलिश, रोमानियाई, सर्बियाई और स्लोवेनियाई, लेकिन फ्रेंच, जर्मन, इतालवी और आयरिश गेलिक)
 * कोड पेज 437, कोड पेज 720, कोड पेज 737, कोड पेज 850, कोड पेज 852, कोड पेज 855, कोड पेज 857, कोड पेज 858, कोड पेज 860, कोड पेज 861, कोड पेज 862, कोड पेज 863, कोड पेज 865, कोड पेज 866, कोड पेज 869, कोड पेज 872
 * विंडोज कोड पेज | एमएस-विंडोज कैरेक्टर सेट:
 * लैटिन लिपि का उपयोग करने वाली मध्य यूरोपीय भाषाओं के लिए विंडोज-1250, (पोलिश, चेक, स्लोवाक, हंगेरियन, स्लोवेन, सर्बियाई, क्रोएशियाई, बोस्नियाई, रोमानियाई और अल्बानियाई)
 * सिरिलिक अक्षर के लिए विंडोज-1251
 * पश्चिमी भाषाओं के लिए विंडोज-1252
 * ग्रीक के लिए विंडोज-1253
 * तुर्की के लिए विंडोज-1254
 * हिब्रू के लिए विंडोज-1255
 * अरबी के लिए विंडोज़-1256
 * बाल्टिक भाषाओं के लिए Windows-1257
 * वियतनामी के लिए विंडोज-1258
 * मैक ओएस रोमन
 * KOI8-R, KOI8-U, KOI7
 * MIK कोड पेज
 * सूचना विनिमय के लिए भारतीय लिपि कोड
 * सूचना इंटरचेंज के लिए तमिल लिपि कोड
 * सूचना विनिमय के लिए वियतनामी मानक कोड
 * जेआईएस एक्स 0208 जापानी वर्ण एन्कोडिंग के लिए व्यापक रूप से तैनात मानक है जिसमें कई एन्कोडिंग रूप हैं।
 * शिफ्ट JIS (Microsoft कोड पृष्ठ 932 (Microsoft Windows) Shift_JIS की एक बोली है)
 * विस्तारित यूनिक्स कोड|ईयूसी-जेपी
 * आईएसओ/आईईसी 2022|आईएसओ-2022-जेपी
 * JIS X 0213, JIS X 0208 का विस्तारित संस्करण है।
 * शिफ्ट JIS|Shift_JIS-2004
 * विस्तारित यूनिक्स कोड|EUC-JIS-2004
 * आईएसओ/आईईसी 2022|आईएसओ-2022-जेपी-2004
 * जीबी मानकों की चीनी सूची
 * जीबी 2312
 * जीबीके (कैरेक्टर एन्कोडिंग) (माइक्रोसॉफ्ट कोड पेज 936)
 * जीबी 18030
 * ताइवान Big5 (एक अधिक प्रसिद्ध संस्करण Microsoft कोड पृष्ठ 950 है)
 * हांगकांग एचकेएससीएस
 * कोरियाई
 * केएस एक्स 1001 एक कोरियाई डबल-बाइट वर्ण एन्कोडिंग मानक है
 * विस्तारित यूनिक्स कोड#EUC-KR|EUC-KR
 * आईएसओ/आईईसी 2022|आईएसओ-2022-केआर
 * यूनिकोड (और उसके सबसेट, जैसे कि 16-बिट 'बेसिक मल्टीलिंगुअल प्लेन')
 * यूटीएफ-8
 * यूटीएफ-16
 * यूटीएफ -32
 * एएनएसईएल या आईएसओ / आईईसी 6937

बाहरी संबंध

 * Character sets registered by Internet Assigned Numbers Authority (IANA)
 * Characters and encodings, by Jukka Korpela
 * Unicode Technical Report #17: Character Encoding Model
 * Decimal, Hexadecimal Character Codes in HTML Unicode – Encoding converter
 * The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) by Joel Spolsky (Oct 10, 2003)