दस्तावेज़ वर्ण सेट

Intended audience: XHTML / HTML लेखक (संपादक या पटकथा का उपयोग करके), स्क्रिप्ट डेवलपर्स (PHP, JSP, आदि) , सीएसएस लेखक, XSLT डेवलपर्स, वेब परियोजना प्रबंधकों, और जो कोई दस्तावेज़ कैरेक्टर सेट क्या है समझना चाहता है, और कैसे वह दस्तावेज़ या पृष्ठ में इस्तेमाल एन्कोडिंग उस से संबंधित है .

Question

XML और HTML के लिए 'दस्तावेज़ कैरेक्टर सेट' क्या है , और जो मेने अपने दस्तावेज़ों में एन्कोडिंग का उपयोग कराहे उस से कैसे संबंधित है?

Answer

सादगी के लिए, और यह आम बात है, जब हम इस सवाल जवाब में यूनिकोड की बात करें तो हम आईएसओ / आईईसी 10646 दोनों द्वारा परिभाषित चरक्टेर सेट उल्लेख कर रहे होतें है.

XML और HTML (संस्करण 4.0) के दस्तावेज़ वर्ण सेट या आधार वर्ण सेट , आईएसओ / आईईसी 10646 और यूनिकोड मानकों दोनों द्वारा यूनिवर्सल कैरेक्टर सेट (UCS) परिभाषित किया गया है, जो कोड के लिए कोड समान हैं.

इसका मतलब है कि तार्किक मॉडल का वर्णन कैसे XML और HTML है यूनिकोड वर्ण के संदर्भ में वर्णित सेट संसाधित कर रहे हैं.

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

दूसरी ओर, यह एक अच्छा विचार है की जहां भी संभव हो एक यूनिकोड एन्कोडिंग का उपयोग करें , क्योंकि यह वेब अंतर्राष्ट्रीयकरण के कई पहलुओं को सरल करता है और इसका HTML उपयोगकर्ता एजेंटों द्वारा व्यापक रूप से समर्थन किया जाता है , और सभी XML प्रोसेसर द्वारा.

दस्तावेज़ वर्ण सेट का एक महत्वपूर्ण परिणाम है कि संख्यात्मक चरित्र के मूल्यों के संदर्भ(जैसा कि ǵ और ǵ लैटिन के छोटे जी : के साथ) की यूनिकोड अक्षरों के रूप में व्याख्या की जाती हैं - कोई बात नहीं की आप अपने दस्तावेज़ के लिए कोन सी एन्कोडिंग का उपयोग करते है . यह त्रुटि के आम स्रोत है उन के बीच में जो अंतर के बारे में स्पष्ट नहीं हैं.

By the way

अभ्यास में, सभी यूनिकोड वर्ण XML और HTML हर जगह प्रयोग नहीं किया जा सकता है. उदाहरण के लिए, कुछ अक्षर इस से बाहर रखे गएँ है जेसे की नाम तत्व टैग, और कुछ नियंत्रण वर्ण को सामग्री से बाहर रखा गया है. नोट, मगर, XML 1.0 की तुलना में XML 1.1 कई और अधिक वर्णों का उपयोग करने देता है जैसे की नाम टैग तत्व.

ऐतिहासिक जानकारी

HTML 2.0 ने परिभाषित किया है कि किसी HTML दस्तावेज़ में सभी वर्णों को ISO 8859-1 सापेक्ष व्याख्या की जा रहे हैं(ISO 1 लेटिन के भी रूप में जाना), लेकिन यह भी घोषणा की कि HTML के भविष्य की सभी संस्करणों का एक सुपेर्सेट का उपयोग करेगा, अर्थात्. (ISO 10646 या यूनिकोड), जिसका अर्थ है कि दुनिया के वर्ण विशाल संख्या में उपलब्ध हैं.

इंटरनेट पर यूनिकोड का उपयोग सही तरीके से करने के लिए बारे में विचार विमर्श( RFC 2130, अप्रैल 1997, और RFC 2070, जनवरी 1997) अभी तक खत्म नहीं थे जबHTML 3.2 बाहर आया था (1997 जनवरी, तो यूनिकोड को HTML में शामिल किए जाने के लिए इंतजार करना पड़ा HTML 4.0 (दिसम्बर 1997).