संख्यात्मक वर्ण संदर्भ: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Short description|Common markup construct used in SGML, XML, and HTML}}
{{Short description|Common markup construct used in SGML, XML, and HTML}}
संख्यात्मक वर्ण संदर्भ (NCR) सामान्य [[मार्कअप (कंप्यूटर प्रोग्रामिंग)]] निर्माण है जिसका उपयोग SGML और SGML-व्युत्पन्न मार्कअप भाषाओं जैसे HTML और XML में किया जाता है। इसमें वर्णों (कंप्यूटिंग) का छोटा अनुक्रम होता है, जो बदले में, एकल वर्ण का प्रतिनिधित्व करता है। [[एसजीएमएल]], [[एक्सएमएल]] और [[[[एचटीएमएल]] 4]] के बाद से, [[यूनिकोड]] के [[यूनिवर्सल कैरेक्टर सेट]] (यूसीएस) के कोड बिंदुओं का उपयोग किया जाता है। एनसीआर का उपयोग सामान्यतः उन वर्णों का प्रतिनिधित्व करने के लिए किया जाता है जो किसी विशेष दस्तावेज़ में सादा पाठ#एनकोडिंग नहीं हैं (उदाहरण के लिए, क्योंकि वे अंतरराष्ट्रीय वर्ण हैं जो उपयोग किए जा रहे 8-बिट [[ अक्षरों को सांकेतिक अक्षरों में बदलना |अक्षरों को सांकेतिक अक्षरों में बदलना]] में फिट नहीं होते हैं, या क्योंकि उनका विशेष वाक्यविन्यास अर्थ होता है) भाषा में) जब दस्तावेज़ की व्याख्या मार्कअप-जागरूक पाठक द्वारा की जाती है, तो प्रत्येक एनसीआर के साथ ऐसा व्यवहार किया जाता है मानो यह वह चरित्र हो जिसका वह प्रतिनिधित्व करता है।
'''संख्यात्मक वर्ण संदर्भ''' ('''एनसीआर''') सामान्य [[मार्कअप (कंप्यूटर प्रोग्रामिंग)]] निर्माण होता है जिसका उपयोग एसजीएमएल और एसजीएमएल-व्युत्पन्न मार्कअप भाषाओं जैसे एचटीएमएल और एक्सएमएल में किया जाता है। इसमें वर्णों (कंप्यूटिंग) का छोटा अनुक्रम होता है, जो बदले में, एकल वर्ण का प्रतिनिधित्व करता है। इस प्रकार [[एसजीएमएल]], [[एक्सएमएल]] और [[एचटीएमएल]] 4 के पश्चात् से, [[यूनिकोड]] के [[यूनिवर्सल कैरेक्टर सेट|यूनिवर्सल अक्षर समूह]] (यूसीएस) के कोड बिंदुओं का उपयोग किया जाता है। अतः एनसीआर का उपयोग सामान्यतः उन वर्णों का प्रतिनिधित्व करने के लिए किया जाता है जो किसी विशेष दस्तावेज़ में सीधे एनकोडिंग करने योग्य नहीं होते हैं (उदाहरण के लिए, जिससे कि वह अंतरराष्ट्रीय वर्ण हैं जो उपयोग किए जा रहे 8-बिट [[ अक्षरों को सांकेतिक अक्षरों में बदलना |अक्षरों को सांकेतिक अक्षरों में परिवर्तन]] में फिट नहीं होते हैं, या जिससे कि उनका विशेष वाक्यविन्यास अर्थ होता है) भाषा में जब दस्तावेज़ की व्याख्या मार्कअप-जागरूक पाठक द्वारा की जाती है, तब प्रत्येक एनसीआर के साथ ऐसा व्यवहार किया जाता है मानो यह वह अक्षर होता है, जिसका वह प्रतिनिधित्व करता है।


==उदाहरण==
==उदाहरण==
एसजीएमएल, एचटीएमएल और एक्सएमएल में, ग्रीक कैपिटल लेटर सिग्मा के लिए निम्नलिखित सभी वैध संख्यात्मक चरित्र संदर्भ हैं
एसजीएमएल, एचटीएमएल और एक्सएमएल में, ग्रीक कैपिटल लेटर सिग्मा के लिए निम्नलिखित सभी वैध संख्यात्मक अक्षर संदर्भ होता हैं।
{| class="wikitable"
{| class="wikitable"
|+ Numerical character reference of {{unichar|03A3|GREEK CAPITAL LETTER SIGMA}}<br/>(Note that {{hexadecimal|0931}} = 931<sub>10</sub>)  
|+ संख्यात्मक वर्ण संदर्भ का {{unichar|03A3|ग्रीक कैपिटल लेटर सिग्मा}}<br/>(ध्यान दीजिए कि {{hexadecimal|0931}} = 931<sub>10</sub>)
|-
|-
! [[Unicode#Upluslink|Unicode character]]
! [[Unicode#Upluslink|यूनिकोड वर्ण]]
! Numerical base
! संख्यात्मक आधार
! Numerical reference in markup
! मार्कअप में संख्यात्मक संदर्भ
! Effect
! प्रभाव
|-
|-
| U+03A3 || Decimal || &amp;#931; || Σ
| U+03A3 || दशमलव || &amp;#931; || Σ
|-
|-
| U+03A3 || Decimal || &amp;#0931; || Σ
| U+03A3 || दशमलव || &amp;#0931; || Σ
|-
|-
| U+03A3 || Hexadecimal || &amp;#x3A3; || Σ
| U+03A3 || हेक्साडेसिमल || &amp;#x3A3; || Σ
|-
|-
| U+03A3 || Hexadecimal || &amp;#x03A3; || Σ
| U+03A3 || हेक्साडेसिमल || &amp;#x03A3; || Σ
|-
|-
| U+03A3 || Hexadecimal || &amp;#x3a3; || Σ
| U+03A3 || हेक्साडेसिमल || &amp;#x3a3; || Σ
|}
|}
एसजीएमएल, एचटीएमएल और एक्सएमएल में, लैटिन कैपिटल अक्षर एई के लिए निम्नलिखित सभी वैध संख्यात्मक चरित्र संदर्भ हैं
एसजीएमएल, एचटीएमएल और एक्सएमएल में, लैटिन कैपिटल अक्षर एई के लिए निम्नलिखित सभी वैध संख्यात्मक अक्षर संदर्भ होते हैं।
{| class="wikitable"
{| class="wikitable"
|+ Numerical character reference of {{unichar|00C6|Latin capital letter AE}}  
|+ संख्यात्मक अक्षर संदर्भ का {{unichar|00C6|लैटिन कैपिटल लेटर AE}}
|-
|-
! [[Unicode#Upluslink|Unicode character]]
! [[Unicode#Upluslink|यूनिकोड वर्ण]]
! Numerical base
! संख्यात्मक आधार
! Numerical reference in markup
! मार्कअप में संख्यात्मक संदर्भ
! Effect
! प्रभाव
|-
|-
| U+00C6 || Decimal || &amp;#198; || Æ
| U+00C6 || दशमलव || &amp;#198; || Æ
|-
|-
| U+00C6 || Hexadecimal || &amp;#xC6; || Æ
| U+00C6 || हेक्साडेसिमल || &amp;#xC6; || Æ
|}
|}
एसजीएमएल, एचटीएमएल और एक्सएमएल में, लैटिन छोटे अक्षर शार्प एस के लिए निम्नलिखित सभी वैध संख्यात्मक चरित्र संदर्भ हैं
एसजीएमएल, एचटीएमएल और एक्सएमएल में, लैटिन छोटे अक्षर शार्प एस के लिए निम्नलिखित सभी वैध संख्यात्मक अक्षर संदर्भ हैं
{| class="wikitable"
{| class="wikitable"
|+ Numerical character reference of {{unichar|00DF|Latin small letter sharp s}}  
|+ Numerical character reference of {{unichar|00DF|Latin small letter sharp s}}  
|-
|-
! [[Unicode#Upluslink|Unicode character]]
! [[Unicode#Upluslink|यूनिकोड वर्ण]]
! Numerical base
! संख्यात्मक आधार
! Numerical reference in markup
! मार्कअप में संख्यात्मक संदर्भ
! Effect
! प्रभाव
|-
|-
| U+00DF || Decimal || &amp;#223; || ß
| U+00DF || दशमलव || &amp;#223; || ß
|-
|-
| U+00DF || Hexadecimal || &amp;#xDF; || ß
| U+00DF || हेक्साडेसिमल || &amp;#xDF; || ß
|}
|}
मुद्रण योग्य [[ASCII]] वर्णों के लिए संख्यात्मक वर्ण संदर्भों की सूची:
मुद्रण योग्य [[ASCII]] वर्णों के लिए संख्यात्मक वर्ण संदर्भों की सूची:
{| class="wikitable"
{| class="wikitable"
! [[Unicode#Upluslink|Unicode character]]
! [[Unicode#Upluslink|यूनिकोड वर्ण]]
! Character<br />Reference<br />(decimal)  
! अक्षर
! Character<br />Reference<br />(hexadecimal)  
संदर्भ
! Effect
 
(दशमलव)
! अक्षर
संदर्भ
 
(हेक्साडेसिमल)
! प्रभाव
|-
|-
| U+0020 || &amp;#32; || &amp;#x20; ||  (space)
| U+0020 || &amp;#32; || &amp;#x20; ||  (space)
Line 245: Line 251:
| U+007E || &amp;#126; || &amp;#x7E; || ~
| U+007E || &amp;#126; || &amp;#x7E; || ~
|}
|}
==चर्चा==
==चर्चा==
मार्कअप भाषाओं को सामान्यतः यूसीएस या यूनिकोड वर्णों के संदर्भ में परिभाषित किया जाता है। अर्थात्, दस्तावेज़ में, अमूर्तता के सबसे बुनियादी स्तर पर, वर्णों का क्रम होता है, जो अमूर्त इकाइयाँ होती हैं जो किसी भी वर्ण एन्कोडिंग से स्वतंत्र रूप से उपस्तिथ होती हैं।
मार्कअप भाषाओं को सामान्यतः यूसीएस या यूनिकोड वर्णों के संदर्भ में परिभाषित किया जाता है। अर्थात्, दस्तावेज़ में, अमूर्तता के सबसे बुनियादी स्तर पर, वर्णों का क्रम होता है, अतः अमूर्त इकाइयाँ होती हैं जो किसी भी वर्ण एन्कोडिंग से स्वतंत्र रूप से उपस्तिथ होती हैं।


आदर्श रूप से, जब मार्कअप भाषा का उपयोग करने वाले दस्तावेज़ के पात्रों को [[ अंश |अंश]] ्स के अनुक्रम के रूप में नेटवर्क पर भंडारण या ट्रांसमिशन के लिए एन्कोड किया जाता है, तो उपयोग किया जाने वाला एन्कोडिंग वह होगा जो दस्तावेज़ में प्रत्येक अक्षर का प्रतिनिधित्व करने का समर्थन करता है, यदि नहीं संपूर्ण यूनिकोड, सीधे विशेष बिट अनुक्रम के रूप में।
आदर्श रूप से, जब मार्कअप भाषा का उपयोग करने वाले दस्तावेज़ के पात्रों को [[ अंश |बिट्स]] के अनुक्रम के रूप में नेटवर्क पर भंडारण या ट्रांसमिशन के लिए एन्कोड किया जाता है, तब उपयोग किया जाने वाला एन्कोडिंग वह होता है, यदि यह नहीं होता है तब संपूर्ण यूनिकोड, सीधे विशेष बिट अनुक्रम के रूप में जो दस्तावेज़ में प्रत्येक अक्षर का प्रतिनिधित्व करने का समर्थन करता है।


हालाँकि, कभी-कभी, सुविधा के कारणों से या तकनीकी सीमाओं के कारण, दस्तावेज़ों को ऐसे एन्कोडिंग के साथ एन्कोड किया जाता है जो कुछ वर्णों का सीधे प्रतिनिधित्व नहीं कर सकता है। उदाहरण के लिए, [[ISO 8859]] पर आधारित व्यापक रूप से उपयोग किए जाने वाले एन्कोडिंग, अधिकतम 256 अद्वितीय वर्णों को 8-बिट [[बाइट]] के रूप में प्रदर्शित कर सकते हैं।
चूँकि, कभी-कभी, सुविधा के कारणों से या तकनीकी सीमाओं के कारण, दस्तावेज़ों को ऐसे एन्कोडिंग के साथ एन्कोड किया जाता है जो कुछ वर्णों का सीधे प्रतिनिधित्व नहीं कर सकता है। उदाहरण के लिए, [[ISO 8859|आईओएस 8859]] पर आधारित व्यापक रूप से उपयोग किए जाने वाले एन्कोडिंग, अधिकतम 256 अद्वितीय वर्णों को 8-बिट [[बाइट]] के रूप में प्रदर्शित कर सकते हैं।


व्यवहार में, दस्तावेज़ों को शायद ही कभी आंतरिक रूप से से अधिक एन्कोडिंग का उपयोग करने की अनुमति दी जाती है, इसलिए दस्तावेज़ लेखकों को एन्कोडेबल के संदर्भ में अनएन्कोडेबल वर्णों को व्यक्त करने का साधन प्रदान करने का दायित्व सामान्यतः मार्कअप भाषा पर होता है। यह सामान्यतः किसी प्रकार के एस्केप कैरेक्टर के माध्यम से किया जाता है| भागने का तंत्र.
व्यवहार में, दस्तावेज़ों को शायद ही कभी आंतरिक रूप से अधिक एन्कोडिंग का उपयोग करने की अनुमति दी जाती है, इसलिए दस्तावेज़ लेखकों को एन्कोडेबल के संदर्भ में अनएन्कोडेबल वर्णों को व्यक्त करने का साधन प्रदान करने का दायित्व सामान्यतः मार्कअप भाषा पर होता है। यह सामान्यतः किसी प्रकार के एस्केप अक्षर के माध्यम से किया जाता है।


एसजीएमएल-आधारित मार्कअप भाषाएं दस्तावेज़ लेखकों को किसी भी यूनिकोड चरित्र का प्रतिनिधित्व करने या संदर्भित करने के लिए एएससीआईआई रेंज (यूनिकोड के पहले 128 [[कोड बिंदु]]) से वर्णों के विशेष अनुक्रमों का उपयोग करने की अनुमति देती हैं, भले ही प्रतिनिधित्व किया जा रहा चरित्र सीधे उपलब्ध हो। दस्तावेज़ की एन्कोडिंग. ये विशेष क्रम चरित्र संदर्भ हैं।
एसजीएमएल-आधारित मार्कअप भाषाएं दस्तावेज़ लेखकों को किसी भी यूनिकोड अक्षर का प्रतिनिधित्व करने या संदर्भित करने के लिए एएससीआईआई सीमा (यूनिकोड के पूर्व 128 [[कोड बिंदु]]) से वर्णों के विशेष अनुक्रमों का उपयोग करने की अनुमति देती हैं, अतः भले ही प्रतिनिधित्व किया जा रहा अक्षर सीधे उपलब्ध हो जाता है। इस प्रकार दस्तावेज़ की एन्कोडिंग यह विशेष क्रम अक्षर संदर्भ होता हैं।


वर्ण संदर्भ जो संदर्भित वर्ण के यूसीएस या यूनिकोड कोड बिंदु पर आधारित होते हैं, संख्यात्मक वर्ण संदर्भ कहलाते हैं। HTML 4 और [[XHTML]] तथा XML के सभी संस्करणों में, कोड बिंदु को [[दशमलव]] (आधार 10) संख्या या [[हेक्साडेसिमल]] (आधार 16) संख्या के रूप में व्यक्त किया जा सकता है। वाक्यविन्यास इस प्रकार है:
वर्ण संदर्भ जो संदर्भित वर्ण के यूसीएस या यूनिकोड कोड बिंदु पर आधारित होते हैं, अतः संख्यात्मक वर्ण संदर्भ कहलाते हैं। इस प्रकार एचटीएमएल 4 और [[XHTML|एक्सएचटीएमएल]] तथा एक्सएमएल के सभी संस्करणों में, कोड बिंदु को [[दशमलव]] (आधार 10) संख्या या [[हेक्साडेसिमल]] (आधार 16) संख्या के रूप में व्यक्त किया जा सकता है। अतः वाक्यविन्यास इस प्रकार होता है।


वर्ण U+0026 ([[एम्परसेंड]]), उसके बाद वर्ण U+0023 ([[संख्या चिह्न]]), उसके बाद निम्नलिखित विकल्पों में से एक:
वर्ण U+0026 ([[एम्परसेंड]]), उसके पश्चात् वर्ण U+0023 ([[संख्या चिह्न]]), उसके पश्चात् निम्नलिखित विकल्पों में से:


* या अधिक दशमलव अंक शून्य (U+0030) से नौ (U+0039); या
* या अधिक दशमलव अंक शून्य (U+0030) से नौ (U+0039) या
* वर्ण U+0078 (x) जिसके बाद या अधिक हेक्साडेसिमल अंक होते हैं, जो शून्य (U+0030) से नौ (U+0039), लैटिन बड़े अक्षर A (U+0041) से F (U+0046) तक होते हैं, और लैटिन लघु अक्षर a (U+0061) से f (U+0066);
* वर्ण U+0078 (एक्स) जिसके बाद या अधिक हेक्साडेसिमल अंक होते हैं, जो शून्य (U+0030) से नौ (U+0039), लैटिन बड़े अक्षर A (U+0041) से F (U+0046) तक होते हैं और लैटिन लघु अक्षर (U+0061) से एफ (U+0066);


सभी के बाद अक्षर U+003B (अर्धविराम) आता है। HTML के पुराने संस्करणों में हेक्साडेसिमल सिंटैक्स की अनुमति नहीं थी।
सभी के बाद अक्षर U+003B (अर्धविराम) आता है। इस प्रकार एचटीएमएल के पुराने संस्करणों में हेक्साडेसिमल वाक्य - विन्यास की अनुमति नहीं होती थी।


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


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


==प्रतिबंध==
==प्रतिबंध==
आईएसओ 10646 द्वारा परिभाषित यूनिवर्सल कैरेक्टर सेट एसजीएमएल, एचटीएमएल 4 का दस्तावेज़ कैरेक्टर सेट है, इसलिए डिफ़ॉल्ट रूप से, ऐसे दस्तावेज़ में कोई भी चरित्र, और ऐसे दस्तावेज़ में संदर्भित कोई भी चरित्र, यूसीएस में होना चाहिए।
आईएसओ 10646 द्वारा परिभाषित सार्वभौमिक अक्षर समूह एसजीएमएल, एचटीएमएल 4 का दस्तावेज़ अक्षर समूह है, इसलिए अभाव रूप से, ऐसे दस्तावेज़ में कोई भी अक्षर, और ऐसे दस्तावेज़ में संदर्भित कोई भी अक्षर, यूसीएस में होना चाहिए।


जबकि एसजीएमएल का सिंटैक्स अमान्य या अनिर्धारित कोड बिंदुओं के संदर्भों को प्रतिबंधित नहीं करता है, जैसे <code>&amp;#xFFFF;</code>, एसजीएमएल-व्युत्पन्न मार्कअप भाषाएं जैसे एचटीएमएल और एक्सएमएल, संख्यात्मक वर्ण संदर्भों को केवल उन कोड बिंदुओं तक सीमित कर सकती हैं, और अधिकांशतः करती हैं जो वर्णों को निर्दिष्ट हैं।
जबकि एसजीएमएल का वाक्य-विन्यास अमान्य या अनिर्धारित कोड बिंदुओं के संदर्भों को प्रतिबंधित नहीं करता है, जैसे <code>&amp;#एक्सएफएफएफएफ;</code>, एसजीएमएल-व्युत्पन्न मार्कअप भाषाएं जैसे एचटीएमएल और एक्सएमएल, संख्यात्मक वर्ण संदर्भों को केवल उन कोड बिंदुओं तक सीमित कर सकती हैं, और अधिकांशतः करती हैं जो वर्णों को निर्दिष्ट करता हैं।


अन्य कारणों से भी प्रतिबंध लागू हो सकते हैं. उदाहरण के लिए, HTML 4 में, <code>&amp;#12;</code>, जो गैर-मुद्रण प्रपत्र फ़ीड नियंत्रण वर्ण का संदर्भ है, की अनुमति है क्योंकि प्रपत्र फ़ीड वर्ण की अनुमति है। लेकिन XML में, फॉर्म फ़ीड कैरेक्टर का उपयोग नहीं किया जा सकता, संदर्भ द्वारा भी नहीं।<ref>{{cite web |title=HTML 5.2: 8. The HTML syntax |url=https://www.w3.org/TR/2017/WD-html52-20170228/syntax.html |website=www.w3.org}}</ref>{{Citation needed|date=May 2013}} अन्य उदाहरण के रूप में, <code>&amp;#128;</code>, जो किसी अन्य नियंत्रण वर्ण का संदर्भ है, इसे HTML या XML में उपयोग या संदर्भित करने की अनुमति नहीं है, लेकिन जब HTML में उपयोग किया जाता है, तो इसे सामान्यतः वेब ब्राउज़र द्वारा त्रुटि के रूप में चिह्नित नहीं किया जाता है - जिनमें से कुछ इसे संदर्भ के रूप में व्याख्या करते हैं संगतता कारणों से [[Windows-1252]] एन्कोडिंग में कोड मान 128 द्वारा दर्शाए गए वर्ण के लिए। इस वर्ण को, €, के रूप में प्रस्तुत किया जाना है <code>&amp;#8364;</code> मानक-अनुपालक HTML कोड में। और उदाहरण के रूप में, 6 अक्टूबर 2000 को XML 1.0 द्वितीय संस्करण के प्रकाशन से पहले, XML 1.0 ISO 10646 के पुराने संस्करण पर आधारित था और वर्ण डेटा को छोड़कर, U+FFFD से ऊपर वर्णों का उपयोग करना प्रतिबंधित था, इस प्रकार संदर्भ बना <code>&amp;#65536;</code> (यू+10000) अवैध। XML 1.1 और XML 1.0 के नए संस्करणों में, ऐसे संदर्भ की अनुमति है, क्योंकि उपलब्ध वर्ण भंडार को स्पष्ट रूप से विस्तारित किया गया था।
अन्य कारणों से भी प्रतिबंध क्रियान्वित हो सकते हैं. उदाहरण के लिए, एचटीएमएल 4 में, <code>&amp;#12;</code>, जो गैर-मुद्रण प्रपत्र फ़ीड नियंत्रण वर्ण का संदर्भ है, इसकी अनुमति है जिससे कि प्रपत्र फ़ीड वर्ण की अनुमति है। लेकिन एक्सएमएल में, फॉर्म फ़ीड अक्षर का उपयोग संदर्भ द्वारा भी नहीं किया जा सकता है।<ref>{{cite web |title=HTML 5.2: 8. The HTML syntax |url=https://www.w3.org/TR/2017/WD-html52-20170228/syntax.html |website=www.w3.org}}</ref> अन्य उदाहरण के रूप में, <code>&amp;#128;</code>, जो किसी अन्य नियंत्रण वर्ण का संदर्भ है, इसे एचटीएमएल या एक्सएमएल में उपयोग या संदर्भित करने की अनुमति नहीं है, लेकिन जब एचटीएमएल में उपयोग किया जाता है, तब इसे सामान्यतः वेब ब्राउज़र द्वारा त्रुटि के रूप में चिह्नित नहीं किया जाता है - जिनमें से कुछ इसे संदर्भ के रूप में व्याख्या करते हैं संगतता कारणों से [[Windows-1252|विंडोज़-1252]] एन्कोडिंग में कोड मान 128 द्वारा दर्शाए गए वर्ण के लिए इस वर्ण को, €, के रूप में प्रस्तुत किया जाना है <code>&amp;#8364;</code> मानक-अनुपालक एचटीएमएल कोड में और उदाहरण के रूप में, 6 अक्टूबर, सन्न 2000 को एक्सएमएल 1.0 द्वितीय संस्करण के प्रकाशन से पहले, एक्सएमएल 1.0 आईएसओ 10646 के पुराने संस्करण पर आधारित था और वर्ण डेटा को छोड़कर, यू+एफएफएफडी से ऊपर वर्णों का उपयोग करना प्रतिबंधित होता था, इस प्रकार संदर्भ बना <code>&amp;#65536;</code> (यू+10000) अवैध एक्सएमएल 1.1 और एक्सएमएल 1.0 के नए संस्करणों में, ऐसे संदर्भ की अनुमति होती है, जिससे कि उपलब्ध वर्ण भंडार को स्पष्ट रूप से विस्तारित किया गया था।


मार्कअप भाषाएँ इस पर भी प्रतिबंध लगाती हैं कि चरित्र संदर्भ कहाँ हो सकते हैं।
मार्कअप भाषाएँ इस पर भी प्रतिबंध लगाती हैं कि अक्षर संदर्भ कहाँ हो सकते हैं।


==संगतता समस्याएँ==
==संगतता समस्याएँ==


एसजीएमएल और एचटीएमएल के शुरुआती संस्करणों में, संख्यात्मक चरित्र संदर्भों की व्याख्या यूनिकोड के अतिरिक्त दस्तावेज़ चरित्र एन्कोडिंग के संबंध में की गई थी। लैटिन-लिपि दस्तावेज़ों के लिए, उन दस्तावेज़ों में x80 और x9F के बीच वर्णों के संख्यात्मक वर्ण संदर्भ यूनिकोड के विरुद्ध सही नहीं होंगे, और उन्हें दोबारा कोडित किया जाना चाहिए। HTML 4 से पहले HTML मानक केवल पश्चिमी लैटिन लिपि दस्तावेजों का समर्थन करते थे: #7F से ऊपर के चरित्र संदर्भों का उपचार अनुप्रयोगों और राष्ट्रीय सम्मेलनों के बीच भिन्न हो सकता है।
एसजीएमएल और एचटीएमएल के प्रारंभिक संस्करणों में, संख्यात्मक अक्षर संदर्भों की व्याख्या यूनिकोड के अतिरिक्त दस्तावेज़ अक्षर एन्कोडिंग के संबंध में की गई थी। इस प्रकार लैटिन-लिपि दस्तावेज़ों के लिए, उन दस्तावेज़ों में x80 और x9F के मध्य वर्णों के संख्यात्मक वर्ण संदर्भ यूनिकोड के विरुद्ध सही नहीं होते है, और उन्हें पुनः कोडित किया जाता है। इस प्रकार एचटीएमएल 4 से पहले एचटीएमएल मानक केवल पश्चिमी लैटिन लिपि दस्तावेजों का समर्थन करते थे और #7F से ऊपर के अक्षर संदर्भों का उपचार अनुप्रयोगों और राष्ट्रीय सम्मेलनों के मध्य भिन्न हो सकता है।


उदाहरण के लिए, जैसा कि ऊपर बताया गया है, [[यूरो चिह्न]] € के लिए सही संख्यात्मक वर्ण संदर्भ <code>U+20AC</code> यूनिकोड का उपयोग करते समय दशमलव होता है <code>&amp;#8364;</code> और हेक्साडेसिमल <code>&amp;#x20AC;</code>. हालाँकि, यदि HTML के अप्रचलित कार्यान्वयन का समर्थन करने वाले टूल का उपयोग किया जा रहा है, तो संदर्भ <code>&amp;#128;</code> ([[सीपी-1252]] कोड पृष्ठ में यूरो चिह्न) या <code>&amp;#164;</code> (आईएसओ/आईईसी 8859-15 में यूरो चिह्न) काम कर सकता है।
उदाहरण के लिए, जैसा कि ऊपर बताया गया है कि [[यूरो चिह्न]] € के लिए सही संख्यात्मक वर्ण संदर्भ <code>U+20AC</code> यूनिकोड का उपयोग करते समय दशमलव होता है <code>&amp;#8364;</code> और हेक्साडेसिमल <code>&amp;#x20AC;</code>. चूँकि, यदि एचटीएमएल के अप्रचलित कार्यान्वयन का समर्थन करने वाले टूल का उपयोग किया जा रहा है, तब संदर्भ <code>&amp;#128;</code> ([[सीपी-1252]] कोड पृष्ठ में यूरो चिह्न) या <code>&amp;#164;</code> (आईएसओ/आईईसी 8859-15 में यूरो चिह्न) कार्य कर सकता है।


अन्य उदाहरण के रूप में, यदि कुछ पाठ मूल रूप से [[मैक्रोमन]] वर्ण सेट का उपयोग करके बनाया गया था, तो [[उद्धरण चिह्न ग्लिफ़]] {{char|“}} को कोड बिंदु xD2 के साथ दर्शाया जाएगा। यह यूटीएफ-8, आईएसओ 8859-1, या सीपी-1252 के रूप में एन्कोड किए गए दस्तावेज़ की अपेक्षा करने वाले सिस्टम में ठीक से प्रदर्शित नहीं होगा, जहां यह कोड बिंदु अक्षर Ò द्वारा कब्जा कर लिया गया है। के लिए सही संख्यात्मक वर्ण संदर्भ {{char|“}} HTML 4 में और नया है <code>&amp;#x201C;</code>, क्योंकि Unicode#Upluslink|U+201C इसका UCS कोड है। कुछ प्रणालियों में, [[XML और HTML वर्ण इकाई संदर्भों की सूची]] <code>&amp;ldquo;</code> भी उपलब्ध हो सकता है.
अन्य उदाहरण के रूप में, यदि कुछ पाठ मूल रूप से [[मैक्रोमन]] वर्ण समूह का उपयोग करके बनाया गया था, तब [[उद्धरण चिह्न ग्लिफ़]] {{char|“}} को कोड बिंदु xD2 के साथ दर्शाया जाता है। यह यूटीएफ-8, आईएसओ 8859-1, या सीपी-1252 के रूप में एन्कोड किए गए दस्तावेज़ की अपेक्षा करने वाले प्रणाली में ठीक से प्रदर्शित नहीं होता है, जहां यह कोड बिंदु अक्षर Ò द्वारा कब्जा कर लिया गया है। इसके लिए सही संख्यात्मक वर्ण संदर्भ {{char|“}} एचटीएमएल 4 में और नया होता है <code>&amp;#x201C;</code>, जिससे कि U+201C इसका यूसीएस कोड होता है। इस प्रकार कुछ प्रणालियों में, [[XML और HTML वर्ण इकाई संदर्भों की सूची|एक्सएमएल और एचटीएमएल वर्ण इकाई संदर्भों की सूची]] <code>&amp;यथास्थिति;</code> भी उपलब्ध हो सकता है।


==यह भी देखें==
==यह भी देखें==
* XML और HTML वर्ण इकाई संदर्भों की सूची
* एक्सएमएल और एचटीएमएल वर्ण इकाई संदर्भों की सूची


==संदर्भ==
==संदर्भ==
Line 297: Line 301:
{{Unicode navigation}}
{{Unicode navigation}}


{{DEFAULTSORT:Numeric Character Reference}}[[Category: एचटीएमएल]] [[Category: यूनिकोड]] [[Category: एक्सएमएल]]
{{DEFAULTSORT:Numeric Character Reference}}
 
 


[[Category: Machine Translated Page]]
[[Category:Collapse templates|Numeric Character Reference]]
[[Category:Created On 01/07/2023]]
[[Category:Created On 01/07/2023|Numeric Character Reference]]
[[Category:Lua-based templates|Numeric Character Reference]]
[[Category:Machine Translated Page|Numeric Character Reference]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists|Numeric Character Reference]]
[[Category:Pages with script errors|Numeric Character Reference]]
[[Category:Sidebars with styles needing conversion|Numeric Character Reference]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready|Numeric Character Reference]]
[[Category:Templates generating microformats|Numeric Character Reference]]
[[Category:Templates that add a tracking category|Numeric Character Reference]]
[[Category:Templates that are not mobile friendly|Numeric Character Reference]]
[[Category:Templates that generate short descriptions|Numeric Character Reference]]
[[Category:Templates using TemplateData|Numeric Character Reference]]
[[Category:Wikipedia metatemplates|Numeric Character Reference]]
[[Category:एक्सएमएल|Numeric Character Reference]]
[[Category:एचटीएमएल|Numeric Character Reference]]
[[Category:यूनिकोड|Numeric Character Reference]]

Latest revision as of 19:20, 12 July 2023

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

उदाहरण

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

संख्यात्मक वर्ण संदर्भ का U+03A3 Σ ग्रीक कैपिटल लेटर सिग्मा
(ध्यान दीजिए कि 3A316 = 93110)
यूनिकोड वर्ण संख्यात्मक आधार मार्कअप में संख्यात्मक संदर्भ प्रभाव
U+03A3 दशमलव &#931; Σ
U+03A3 दशमलव &#0931; Σ
U+03A3 हेक्साडेसिमल &#x3A3; Σ
U+03A3 हेक्साडेसिमल &#x03A3; Σ
U+03A3 हेक्साडेसिमल &#x3a3; Σ

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

संख्यात्मक अक्षर संदर्भ का U+00C6 Æ लैटिन कैपिटल लेटर AE
यूनिकोड वर्ण संख्यात्मक आधार मार्कअप में संख्यात्मक संदर्भ प्रभाव
U+00C6 दशमलव &#198; Æ
U+00C6 हेक्साडेसिमल &#xC6; Æ

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

Numerical character reference of U+00DF ß LATIN SMALL LETTER SHARP S
यूनिकोड वर्ण संख्यात्मक आधार मार्कअप में संख्यात्मक संदर्भ प्रभाव
U+00DF दशमलव &#223; ß
U+00DF हेक्साडेसिमल &#xDF; ß

मुद्रण योग्य ASCII वर्णों के लिए संख्यात्मक वर्ण संदर्भों की सूची:

यूनिकोड वर्ण अक्षर

संदर्भ

(दशमलव)

अक्षर

संदर्भ

(हेक्साडेसिमल)

प्रभाव
U+0020 &#32; &#x20; (space)
U+0021 &#33; &#x21; !
U+0022 &#34; &#x22; "
U+0023 &#35; &#x23; #
U+0024 &#36; &#x24; $
U+0025 &#37; &#x25; %
U+0026 &#38; &#x26; &
U+0027 &#39; &#x27; '
U+0028 &#40; &#x28; (
U+0029 &#41; &#x29; )
U+002A &#42; &#x2A; *
U+002B &#43; &#x2B; +
U+002C &#44; &#x2C; ,
U+002D &#45; &#x2D; -
U+002E &#46; &#x2E; .
U+002F &#47; &#x2F; /
U+0030 &#48; &#x30; 0
U+0031 &#49; &#x31; 1
U+0032 &#50; &#x32; 2
U+0033 &#51; &#x33; 3
U+0034 &#52; &#x34; 4
U+0035 &#53; &#x35; 5
U+0036 &#54; &#x36; 6
U+0037 &#55; &#x37; 7
U+0038 &#56; &#x38; 8
U+0039 &#57; &#x39; 9
U+003A &#58; &#x3A; :
U+003B &#59; &#x3B; ;
U+003C &#60; &#x3C; <
U+003D &#61; &#x3D; =
U+003E &#62; &#x3E; >
U+003F &#63; &#x3F; ?
U+0040 &#64; &#x40; @
U+0041 &#65; &#x41; A
U+0042 &#66; &#x42; B
U+0043 &#67; &#x43; C
U+0044 &#68; &#x44; D
U+0045 &#69; &#x45; E
U+0046 &#70; &#x46; F
U+0047 &#71; &#x47; G
U+0048 &#72; &#x48; H
U+0049 &#73; &#x49; I
U+004A &#74; &#x4A; J
U+004B &#75; &#x4B; K
U+004C &#76; &#x4C; L
U+004D &#77; &#x4D; M
U+004E &#78; &#x4E; N
U+004F &#79; &#x4F; O
U+0050 &#80; &#x50; P
U+0051 &#81; &#x51; Q
U+0052 &#82; &#x52; R
U+0053 &#83; &#x53; S
U+0054 &#84; &#x54; T
U+0055 &#85; &#x55; U
U+0056 &#86; &#x56; V
U+0057 &#87; &#x57; W
U+0058 &#88; &#x58; X
U+0059 &#89; &#x59; Y
U+005A &#90; &#x5A; Z
U+005B &#91; &#x5B; [
U+005C &#92; &#x5C; \
U+005D &#93; &#x5D; ]
U+005E &#94; &#x5E; ^
U+005F &#95; &#x5F; _
U+0060 &#96; &#x60; '
U+0061 &#97; &#x61; a
U+0062 &#98; &#x62; b
U+0063 &#99; &#x63; c
U+0064 &#100; &#x64; d
U+0065 &#101; &#x65; e
U+0066 &#102; &#x66; f
U+0067 &#103; &#x67; g
U+0068 &#104; &#x68; h
U+0069 &#105; &#x69; i
U+006A &#106; &#x6A; j
U+006B &#107; &#x6B; k
U+006C &#108; &#x6C; l
U+006D &#109; &#x6D; m
U+006E &#110; &#x6E; n
U+006F &#111; &#x6F; o
U+0070 &#112; &#x70; p
U+0071 &#113; &#x71; q
U+0072 &#114; &#x72; r
U+0073 &#115; &#x73; s
U+0074 &#116; &#x74; t
U+0075 &#117; &#x75; u
U+0076 &#118; &#x76; v
U+0077 &#119; &#x77; w
U+0078 &#120; &#x78; x
U+0079 &#121; &#x79; y
U+007A &#122; &#x7A; z
U+007B &#123; &#x7B; {
U+007C &#124; &#x7C; -
U+007D &#125; &#x7D; }
U+007E &#126; &#x7E; ~

चर्चा

मार्कअप भाषाओं को सामान्यतः यूसीएस या यूनिकोड वर्णों के संदर्भ में परिभाषित किया जाता है। अर्थात्, दस्तावेज़ में, अमूर्तता के सबसे बुनियादी स्तर पर, वर्णों का क्रम होता है, अतः अमूर्त इकाइयाँ होती हैं जो किसी भी वर्ण एन्कोडिंग से स्वतंत्र रूप से उपस्तिथ होती हैं।

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

चूँकि, कभी-कभी, सुविधा के कारणों से या तकनीकी सीमाओं के कारण, दस्तावेज़ों को ऐसे एन्कोडिंग के साथ एन्कोड किया जाता है जो कुछ वर्णों का सीधे प्रतिनिधित्व नहीं कर सकता है। उदाहरण के लिए, आईओएस 8859 पर आधारित व्यापक रूप से उपयोग किए जाने वाले एन्कोडिंग, अधिकतम 256 अद्वितीय वर्णों को 8-बिट बाइट के रूप में प्रदर्शित कर सकते हैं।

व्यवहार में, दस्तावेज़ों को शायद ही कभी आंतरिक रूप से अधिक एन्कोडिंग का उपयोग करने की अनुमति दी जाती है, इसलिए दस्तावेज़ लेखकों को एन्कोडेबल के संदर्भ में अनएन्कोडेबल वर्णों को व्यक्त करने का साधन प्रदान करने का दायित्व सामान्यतः मार्कअप भाषा पर होता है। यह सामान्यतः किसी प्रकार के एस्केप अक्षर के माध्यम से किया जाता है।

एसजीएमएल-आधारित मार्कअप भाषाएं दस्तावेज़ लेखकों को किसी भी यूनिकोड अक्षर का प्रतिनिधित्व करने या संदर्भित करने के लिए एएससीआईआई सीमा (यूनिकोड के पूर्व 128 कोड बिंदु) से वर्णों के विशेष अनुक्रमों का उपयोग करने की अनुमति देती हैं, अतः भले ही प्रतिनिधित्व किया जा रहा अक्षर सीधे उपलब्ध हो जाता है। इस प्रकार दस्तावेज़ की एन्कोडिंग यह विशेष क्रम अक्षर संदर्भ होता हैं।

वर्ण संदर्भ जो संदर्भित वर्ण के यूसीएस या यूनिकोड कोड बिंदु पर आधारित होते हैं, अतः संख्यात्मक वर्ण संदर्भ कहलाते हैं। इस प्रकार एचटीएमएल 4 और एक्सएचटीएमएल तथा एक्सएमएल के सभी संस्करणों में, कोड बिंदु को दशमलव (आधार 10) संख्या या हेक्साडेसिमल (आधार 16) संख्या के रूप में व्यक्त किया जा सकता है। अतः वाक्यविन्यास इस प्रकार होता है।

वर्ण U+0026 (एम्परसेंड), उसके पश्चात् वर्ण U+0023 (संख्या चिह्न), उसके पश्चात् निम्नलिखित विकल्पों में से:

  • या अधिक दशमलव अंक शून्य (U+0030) से नौ (U+0039) या
  • वर्ण U+0078 (एक्स) जिसके बाद या अधिक हेक्साडेसिमल अंक होते हैं, जो शून्य (U+0030) से नौ (U+0039), लैटिन बड़े अक्षर A (U+0041) से F (U+0046) तक होते हैं और लैटिन लघु अक्षर ए (U+0061) से एफ (U+0066);

सभी के बाद अक्षर U+003B (अर्धविराम) आता है। इस प्रकार एचटीएमएल के पुराने संस्करणों में हेक्साडेसिमल वाक्य - विन्यास की अनुमति नहीं होती थी।

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

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

प्रतिबंध

आईएसओ 10646 द्वारा परिभाषित सार्वभौमिक अक्षर समूह एसजीएमएल, एचटीएमएल 4 का दस्तावेज़ अक्षर समूह है, इसलिए अभाव रूप से, ऐसे दस्तावेज़ में कोई भी अक्षर, और ऐसे दस्तावेज़ में संदर्भित कोई भी अक्षर, यूसीएस में होना चाहिए।

जबकि एसजीएमएल का वाक्य-विन्यास अमान्य या अनिर्धारित कोड बिंदुओं के संदर्भों को प्रतिबंधित नहीं करता है, जैसे &#एक्सएफएफएफएफ;, एसजीएमएल-व्युत्पन्न मार्कअप भाषाएं जैसे एचटीएमएल और एक्सएमएल, संख्यात्मक वर्ण संदर्भों को केवल उन कोड बिंदुओं तक सीमित कर सकती हैं, और अधिकांशतः करती हैं जो वर्णों को निर्दिष्ट करता हैं।

अन्य कारणों से भी प्रतिबंध क्रियान्वित हो सकते हैं. उदाहरण के लिए, एचटीएमएल 4 में, &#12;, जो गैर-मुद्रण प्रपत्र फ़ीड नियंत्रण वर्ण का संदर्भ है, इसकी अनुमति है जिससे कि प्रपत्र फ़ीड वर्ण की अनुमति है। लेकिन एक्सएमएल में, फॉर्म फ़ीड अक्षर का उपयोग संदर्भ द्वारा भी नहीं किया जा सकता है।[1] अन्य उदाहरण के रूप में, &#128;, जो किसी अन्य नियंत्रण वर्ण का संदर्भ है, इसे एचटीएमएल या एक्सएमएल में उपयोग या संदर्भित करने की अनुमति नहीं है, लेकिन जब एचटीएमएल में उपयोग किया जाता है, तब इसे सामान्यतः वेब ब्राउज़र द्वारा त्रुटि के रूप में चिह्नित नहीं किया जाता है - जिनमें से कुछ इसे संदर्भ के रूप में व्याख्या करते हैं संगतता कारणों से विंडोज़-1252 एन्कोडिंग में कोड मान 128 द्वारा दर्शाए गए वर्ण के लिए इस वर्ण को, €, के रूप में प्रस्तुत किया जाना है &#8364; मानक-अनुपालक एचटीएमएल कोड में और उदाहरण के रूप में, 6 अक्टूबर, सन्न 2000 को एक्सएमएल 1.0 द्वितीय संस्करण के प्रकाशन से पहले, एक्सएमएल 1.0 आईएसओ 10646 के पुराने संस्करण पर आधारित था और वर्ण डेटा को छोड़कर, यू+एफएफएफडी से ऊपर वर्णों का उपयोग करना प्रतिबंधित होता था, इस प्रकार संदर्भ बना &#65536; (यू+10000) अवैध एक्सएमएल 1.1 और एक्सएमएल 1.0 के नए संस्करणों में, ऐसे संदर्भ की अनुमति होती है, जिससे कि उपलब्ध वर्ण भंडार को स्पष्ट रूप से विस्तारित किया गया था।

मार्कअप भाषाएँ इस पर भी प्रतिबंध लगाती हैं कि अक्षर संदर्भ कहाँ हो सकते हैं।

संगतता समस्याएँ

एसजीएमएल और एचटीएमएल के प्रारंभिक संस्करणों में, संख्यात्मक अक्षर संदर्भों की व्याख्या यूनिकोड के अतिरिक्त दस्तावेज़ अक्षर एन्कोडिंग के संबंध में की गई थी। इस प्रकार लैटिन-लिपि दस्तावेज़ों के लिए, उन दस्तावेज़ों में x80 और x9F के मध्य वर्णों के संख्यात्मक वर्ण संदर्भ यूनिकोड के विरुद्ध सही नहीं होते है, और उन्हें पुनः कोडित किया जाता है। इस प्रकार एचटीएमएल 4 से पहले एचटीएमएल मानक केवल पश्चिमी लैटिन लिपि दस्तावेजों का समर्थन करते थे और #7F से ऊपर के अक्षर संदर्भों का उपचार अनुप्रयोगों और राष्ट्रीय सम्मेलनों के मध्य भिन्न हो सकता है।

उदाहरण के लिए, जैसा कि ऊपर बताया गया है कि यूरो चिह्न € के लिए सही संख्यात्मक वर्ण संदर्भ U+20AC यूनिकोड का उपयोग करते समय दशमलव होता है &#8364; और हेक्साडेसिमल &#x20AC;. चूँकि, यदि एचटीएमएल के अप्रचलित कार्यान्वयन का समर्थन करने वाले टूल का उपयोग किया जा रहा है, तब संदर्भ &#128; (सीपी-1252 कोड पृष्ठ में यूरो चिह्न) या &#164; (आईएसओ/आईईसी 8859-15 में यूरो चिह्न) कार्य कर सकता है।

अन्य उदाहरण के रूप में, यदि कुछ पाठ मूल रूप से मैक्रोमन वर्ण समूह का उपयोग करके बनाया गया था, तब उद्धरण चिह्न ग्लिफ़ को कोड बिंदु xD2 के साथ दर्शाया जाता है। यह यूटीएफ-8, आईएसओ 8859-1, या सीपी-1252 के रूप में एन्कोड किए गए दस्तावेज़ की अपेक्षा करने वाले प्रणाली में ठीक से प्रदर्शित नहीं होता है, जहां यह कोड बिंदु अक्षर Ò द्वारा कब्जा कर लिया गया है। इसके लिए सही संख्यात्मक वर्ण संदर्भ एचटीएमएल 4 में और नया होता है &#x201C;, जिससे कि U+201C इसका यूसीएस कोड होता है। इस प्रकार कुछ प्रणालियों में, एक्सएमएल और एचटीएमएल वर्ण इकाई संदर्भों की सूची &यथास्थिति; भी उपलब्ध हो सकता है।

यह भी देखें

  • एक्सएमएल और एचटीएमएल वर्ण इकाई संदर्भों की सूची

संदर्भ

  1. "HTML 5.2: 8. The HTML syntax". www.w3.org.