कुछ ऐसा जो लंबे समय से मुझे भ्रमित करता है, वह यह है कि बहुत सारे सॉफ्टवेयर शब्द "चारसेट" और "एन्कोडिंग" को समानार्थक शब्द के रूप में उपयोग करते हैं।
जब लोग एक यूनिकोड "एन्कोडिंग" का उल्लेख करते हैं, तो वे हमेशा यूनिकोड वर्णों को बाइट्स के अनुक्रम के रूप में दर्शाने के लिए एक नियम का अर्थ करते हैं - जैसे कि ASCII, या UTF-8। यह उचित और सहज लगता है; विचार यह है कि आप निर्दिष्ट नियमों का उपयोग करके उन वर्णों को बाइट के रूप में "एन्कोडिंग" कर रहे हैं।
चूँकि वे नियम कभी-कभी केवल सभी यूनिकोड वर्णों के कुछ सबसेट को "एनकोड" करने की क्षमता प्रदान करते हैं, आप सोच सकते हैं कि "वर्ण" - 'वर्णों के समूह' के लिए संक्षिप्त है - बस यूनिकोड वर्णों का एक सेट होगा - बिना किसी संबंध के वे पात्र एन्कोडेड हैं। एक एन्कोडिंग इस प्रकार एक charset (ASCII की तरह एक एन्कोडिंग, जो केवल 128 वर्ण एन्कोडिंग के लिए नियम है, उन 128 वर्णों के charset के साथ जुड़ा होगा) लेकिन एक charset इंकोडिंग नहीं की जरूरत है (उदाहरण के लिए, UTF-8, UTF -16 और यूटीएफ -32 सभी अलग-अलग एन्कोडिंग हैं लेकिन वर्णों के एक ही सेट को एन्कोड कर सकते हैं)।
फिर भी - और यहाँ मेरे सवाल का क्रूस है - "चारसेट" शब्द का वास्तविक-विश्व उपयोग इस बात से मेल नहीं खाता कि शब्द का निर्माण क्या होगा। यह लगभग हमेशा "एन्कोडिंग" का मतलब होता है।
उदाहरण के लिए:
charsetHTML में विशेषता एनकोडिंग निर्दिष्ट करने के लिए प्रयोग किया जाता हैCharsetजावा में एनकोडिंग हैंcharsets औरcharacter setsMySQL में एक बार फिर से एनकोडिंग हैं
भाषा का यह जिज्ञासु (ab) उपयोग कितना पुराना है और this charset ’की यह प्रति-सहज परिभाषा कैसे अस्तित्व में आई? क्या यह संभवत: ऐसे समय से उत्पन्न हुआ है जब वास्तव में , व्यवहार में, उपयोग में आने वाले एन्कोडिंग और उनके द्वारा समर्थित पात्रों के सेट के बीच एक-से-एक मानचित्रण था? या क्या कुछ विशेष रूप से प्रभावशाली मानक या विनिर्देश थे जिन्होंने शब्द की इस परिभाषा को निर्धारित किया?
charsetयूनिकोड मानक का उपयोग करता है, इसलिए हो सकता है कि यह "वन-वन-वन मैपिंग" न हो, किसी दस्तावेज़ के लिए आवश्यक वर्ण जो एन्कोडिंग की पसंद को लागू करने के लिए प्रवृत्त होते हैं। लेकिन मेरे पास शब्द के वास्तविक इतिहास पर शोध करने का समय नहीं है ...