यूनिकोड और एचटीएमएल: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 2: Line 2:
{{SpecialChars}}
{{SpecialChars}}
{{Html series}}
{{Html series}}
हाइपरटेक्स्ट मार्कअप भाषा ([[एचटीएमएल ईमेल]]) का उपयोग करके लिखे गए वेब पेजों में यूनिकोड यूनिवर्सल कैरेक्टर सेट के साथ बहुभाषी टेक्स्ट हो सकता है। यूनिकोड और एचटीएमएल के बीच संबंध की कुंजी दस्तावेज़ वर्ण सेट के बीच संबंध है, जो वर्णों के सेट को परिभाषित करता है जो एचटीएमएल दस्तावेज़ में मौजूद हो सकता है और उन्हें संख्याएँ निर्दिष्ट करता है, और बाहरी वर्ण एन्कोडिंग, या चारसेट, एक को एन्कोड करने के लिए उपयोग किया जाता है। बाइट्स के अनुक्रम के रूप में दिया गया दस्तावेज़।
हाइपरटेक्स्ट मार्कअप भाषा ([[एचटीएमएल ईमेल]]) का उपयोग करके लिखे गए वेब पेजों में यूनिकोड यूनिवर्सल कैरेक्टर सेट के साथ बहुभाषी टेक्स्ट हो सकता है। यूनिकोड और एचटीएमएल के बीच संबंध की कुंजी "दस्तावेज़ कैरेक्टर सेट" के बीच का संबंध है, जो कैरेक्टर के सेट को परिभाषित करता है, जो एचटीएमएल दस्तावेज़ में उपस्थित हो सकता है और उन्हें संख्याएँ निर्दिष्ट करता है, और "बाहरी कैरेक्टर एन्कोडिंग", या "चारसेट", किसी दिए गए दस्तावेज़ को बाइट्स के अनुक्रम के रूप में एन्कोड करने के लिए उपयोग किया जाता है।


RFC 1866 में, प्रारंभिक एचटीएमएल 2.0 मानक, दस्तावेज़ वर्ण सेट को ISO-8859-1 के रूप में परिभाषित किया गया था (बाद में एचटीएमएल मानक [[Windows-1252]] एन्कोडिंग के लिए डिफ़ॉल्ट)इसे [[आईएसओ 10646]] (जो मूल रूप से यूनिकोड के बराबर है) तक बढ़ाया गया था {{IETF RFC|2070}}. यह विभिन्न भाषाओं के दस्तावेज़ों या विभिन्न प्लेटफार्मों पर बनाए गए दस्तावेज़ों के बीच भिन्न नहीं होता है। बाहरी [[अक्षरों को सांकेतिक अक्षरों में बदलना]] दस्तावेज़ के लेखक (या दस्तावेज़ बनाने के लिए लेखक द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर) द्वारा चुना जाता है और यह निर्धारित करता है कि दस्तावेज़ वर्ण सेट से वर्णों को दस्तावेज़ मानचित्र को संग्रहीत करने और/या संचारित करने के लिए बाइट्स का उपयोग कैसे किया जाता है। चयनित बाहरी वर्ण एन्कोडिंग में मौजूद वर्ण वर्ण इकाई संदर्भों द्वारा प्रदर्शित नहीं किए जा सकते हैं।
आरएफसी 1866 में, प्रारंभिक एचटीएमएल 2.0 मानक, दस्तावेज़ कैरेक्टर सेट को आईएसओ-8859-1 (बाद में एचटीएमएल मानक [[Windows-1252|विंडोज-1252]] एन्कोडिंग के लिए डिफ़ॉल्ट) के रूप में परिभाषित किया गया था। इसे {{IETF RFC|2070}} द्वारा [[आईएसओ 10646]] (जो मूल रूप से यूनिकोड के बराबर है) तक बढ़ाया गया था। यह विभिन्न भाषाओं के दस्तावेजों के बीच भिन्न नहीं होता है या विभिन्न प्लेटफार्मों पर बनाया जाता है। बाहरी [[अक्षरों को सांकेतिक अक्षरों में बदलना|कैरेक्टर एन्कोडिंग]] दस्तावेज़ के लेखक (या दस्तावेज़ बनाने के लिए लेखक द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर) द्वारा चुना जाता है और यह निर्धारित करता है कि दस्तावेज़ कैरेक्टर सेट से कैरेक्टर को दस्तावेज़ मानचित्र को संग्रहीत करने और संचारित करने के लिए बाइट्स का उपयोग कैसे किया जाता है। चयनित बाहरी कैरेक्टर एन्कोडिंग में उपस्थित कैरेक्टर, कैरेक्टर इकाई संदर्भों द्वारा प्रदर्शित नहीं किए जा सकते हैं।


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


== एचटीएमएल दस्तावेज़ वर्ण ==
== एचटीएमएल दस्तावेज़ कैरेक्टर ==
वेब पेज आमतौर पर एचटीएमएल या [[XHTML|Xएचटीएमएल]] दस्तावेज़ होते हैं। दोनों प्रकार के दस्तावेजों में मौलिक स्तर पर, [[चरित्र (कंप्यूटिंग)]] होते हैं, जो कि [[ग्रफीम]] और ग्रेफेम जैसी इकाइयाँ हैं, जो इस बात से स्वतंत्र हैं कि वे [[ कंप्यूटर भंडारण ]] सिस्टम और [[ संगणक संजाल ]] में कैसे प्रकट होते हैं।
वेब पेज सामान्यतः एचटीएमएल या [[XHTML|एक्सएचटीएमएल]] दस्तावेज़ होते हैं। दोनों प्रकार के दस्तावेजों में मौलिक स्तर पर, [[चरित्र (कंप्यूटिंग)|कैरेक्टर (कंप्यूटिंग)]] होते हैं, जो कि [[ग्रफीम|ग्रेफेम]] और ग्रेफेम जैसी इकाइयाँ हैं, जो इस बात से स्वप्रणाली हैं कि वे [[ कंप्यूटर भंडारण |कंप्यूटर स्टोरेज]] प्रणाली और [[ संगणक संजाल |कंप्यूटर नेटवर्क]] में कैसे प्रकट होते हैं।


एचटीएमएल दस्तावेज़ यूनिकोड वर्णों का क्रम है। अधिक विशेष रूप से, एचटीएमएल 4.0 दस्तावेज़ों को एचटीएमएल दस्तावेज़ वर्ण सेट में वर्णों को शामिल करने की आवश्यकता होती है: वर्ण प्रदर्शनों की सूची जिसमें प्रत्येक वर्ण को अद्वितीय, गैर-नकारात्मक पूर्णांक कोड बिंदु निर्दिष्ट किया जाता है। यह सेट एचटीएमएल 4.0 [[दस्तावेज़ प्रकार परिभाषा]] में परिभाषित किया गया है, जो सिंटैक्स (वर्णों के स्वीकार्य क्रम) को भी स्थापित करता है जो वैध एचटीएमएल दस्तावेज़ का उत्पादन कर सकता है। एचटीएमएल 4.0 के लिए निर्धारित एचटीएमएल दस्तावेज़ वर्ण में अधिकांश, लेकिन सभी नहीं, यूनिकोड और ISO/IEC 10646 द्वारा संयुक्त रूप से परिभाषित वर्ण शामिल हैं: [[यूनिवर्सल कैरेक्टर सेट]] (UCS)
एचटीएमएल दस्तावेज़ यूनिकोड कैरेक्टर का क्रम है। अधिक विशेष रूप से, एचटीएमएल 4.0 दस्तावेज़ों को एचटीएमएल दस्तावेज़ कैरेक्टर सेट में कैरेक्टर को सम्मिलित करने की आवश्यकता होती है: कैरेक्टर प्रदर्शनों की सूची जिसमें प्रत्येक कैरेक्टर को अद्वितीय, गैर-नकारात्मक पूर्णांक कोड बिंदु निर्दिष्ट किया जाता है। यह सेट एचटीएमएल 4.0 [[दस्तावेज़ प्रकार परिभाषा|डीटीडी]] में परिभाषित किया गया है, जो सिंटैक्स (कैरेक्टर के स्वीकार्य क्रम) को भी स्थापित करता है, जो वैध एचटीएमएल दस्तावेज़ का उत्पादन कर सकता है। एचटीएमएल 4.0 के लिए निर्धारित एचटीएमएल दस्तावेज़ कैरेक्टर में अधिकांश, लेकिन सभी नहीं, यूनिकोड और आईएसओ/आईईसी 10646 [[यूनिवर्सल कैरेक्टर सेट]] (यूसीएस) द्वारा संयुक्त रूप से परिभाषित कैरेक्टर सम्मिलित हैं।


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


भले ही दस्तावेज़ एचटीएमएल या Xएचटीएमएल हो, जब [[फाइल सिस्टम]] पर संग्रहीत किया जाता है या किसी नेटवर्क पर प्रसारित किया जाता है, तो दस्तावेज़ के वर्णों को विशेष वर्ण एन्कोडिंग के अनुसार [[ अंश ]] [[ऑक्टेट (कंप्यूटिंग)]] एस ([[बाइट]]्स) के अनुक्रम के रूप में एन्कोड किया जाता है। यह एन्कोडिंग या तो [[यूनिकोड परिवर्तन प्रारूप]] हो सकता है, जैसे [[UTF-8]], जो किसी भी यूनिकोड वर्ण को सीधे एन्कोड कर सकता है, या लीगेसी एन्कोडिंग, जैसे Windows-1252, जो नहीं कर सकता। हालांकि, एन्कोडिंग का उपयोग करते समय भी जो सभी यूनिकोड वर्णों का समर्थन नहीं करते हैं, एन्कोडेड दस्तावेज़ संख्यात्मक वर्ण संदर्भों का उपयोग कर सकता है। उदाहरण के लिए, <code>&amp;#x263A;</code> (☺) का उपयोग यूनिकोड वर्ण सेट में मुस्कुराते हुए चेहरे के चरित्र को इंगित करने के लिए किया जाता है।
तथापि दस्तावेज़ एचटीएमएल या एक्सएचटीएमएल हो, जब [[फाइल सिस्टम|फाइल प्रणाली]] पर संग्रहीत किया जाता है या किसी नेटवर्क पर प्रसारित किया जाता है, तो दस्तावेज़ के कैरेक्टर को विशेष कैरेक्टर एन्कोडिंग के अनुसार [[ अंश |बिट]] [[ऑक्टेट (कंप्यूटिंग)|ऑक्टेट]] ([[बाइट|बाइट्स]]) के अनुक्रम के रूप में एन्कोड किया जाता है। यह एन्कोडिंग या तो [[यूनिकोड परिवर्तन प्रारूप]] हो सकता है, जैसे [[UTF-8|यूटीएफ-8]], जो किसी भी यूनिकोड कैरेक्टर को सीधे एन्कोड कर सकता है, या लीगेसी एन्कोडिंग, जैसे विंडोज-1252, जो नहीं कर सकता है। चूंकि, एन्कोडिंग का उपयोग करते समय भी जो सभी यूनिकोड कैरेक्टर का समर्थन नहीं करते हैं, एन्कोडेड दस्तावेज़ संख्यात्मक कैरेक्टर संदर्भों का उपयोग कर सकता है। उदाहरण के लिए, <code>&amp;#x263A;</code> (☺) का उपयोग यूनिकोड कैरेक्टर सेट में मुस्कुराते हुए चेहरे के कैरेक्टर को इंगित करने के लिए किया जाता है।


=== वर्ण एन्कोडिंग ===
=== कैरेक्टर एन्कोडिंग ===
संख्यात्मक वर्ण संदर्भों का सहारा लिए बिना सभी यूनिकोड वर्णों का समर्थन करने के लिए, वेब पेज में सभी यूनिकोड को शामिल करने वाला एन्कोडिंग होना चाहिए। सबसे लोकप्रिय UTF-8 है, जहां [[ASCII]] वर्ण, जैसे अंग्रेजी अक्षर, अंक, और कुछ अन्य सामान्य वर्ण ASCII के विरुद्ध अपरिवर्तित संरक्षित किए जाते हैं। यह एचटीएमएल कोड (जैसे <br> और ) को ASCII की तुलना में अपरिवर्तित बनाता है। ASCII श्रेणी के बाहर के वर्ण 2–4 बाइट्स में संग्रहित किए जाते हैं। [[UTF-16]] का उपयोग करना भी संभव है जहां अधिकांश वर्णों को अलग-अलग [[endianness]] के साथ दो बाइट के रूप में संग्रहीत किया जाता है, जो आधुनिक ब्राउज़रों द्वारा समर्थित है लेकिन आमतौर पर कम उपयोग किया जाता है।
संख्यात्मक कैरेक्टर संदर्भों का सहारा लिए बिना सभी यूनिकोड कैरेक्टर का समर्थन करने के लिए, वेब पेज में सभी यूनिकोड को सम्मिलित करने वाला एन्कोडिंग होना चाहिए। सबसे लोकप्रिय यूटीएफ-8 है, जहां [[ASCII|एएससीआईआई]] कैरेक्टर, जैसे अंग्रेजी अक्षर, अंक, और कुछ अन्य सामान्य कैरेक्टर एएससीआईआई के विरुद्ध अपरिवर्तित संरक्षित किए जाते हैं। यह एचटीएमएल कोड (जैसे <nowiki><br></nowiki> और <nowiki></div></nowiki>) को एएससीआईआई की तुलना में अपरिवर्तित बनाता है। एएससीआईआई श्रेणी के बाहर के कैरेक्टर 2–4 बाइट्स में संग्रहित किए जाते हैं। [[UTF-16|यूटीएफ-16]] का उपयोग करना भी संभव है, जहां अधिकांश कैरेक्टर को अलग-अलग [[endianness|एंडियननेस]] के साथ दो बाइट के रूप में संग्रहीत किया जाता है, जो आधुनिक ब्राउज़रों द्वारा समर्थित है लेकिन सामान्यतः कम उपयोग किया जाता है।


=== संख्यात्मक चरित्र संदर्भ ===
=== संख्यात्मक कैरेक्टर संदर्भ ===
{{Main|Numeric character reference}}
{{Main|सांख्यिक वर्ण संदर्भ}}


लीगेसी एन्कोडिंग की सीमाओं के आसपास काम करने के लिए, एचटीएमएल को इस तरह डिज़ाइन किया गया है कि संख्यात्मक वर्ण संदर्भ का उपयोग करके एचटीएमएल दस्तावेज़ के अंदर संपूर्ण यूनिकोड के वर्णों का प्रतिनिधित्व करना संभव है: वर्णों का क्रम जो यूनिकोड कोड बिंदु को स्पष्ट रूप से बताता है जिस पात्र का प्रतिनिधित्व किया जा रहा है। चरित्र संदर्भ रूप लेता है<code>&amp;#</code><var>एन</var><code>;</code>, जहां <var>N</var> या तो यूनिकोड कोड बिंदु के लिए [[दशमलव]] संख्या है, या [[हेक्साडेसिमल]] संख्या है, जिस स्थिति में इसे इसके द्वारा उपसर्ग किया जाना चाहिए <code>x</code>. संख्यात्मक वर्ण संदर्भ बनाने वाले वर्ण इंटरनेट पर उपयोग के लिए स्वीकृत प्रत्येक एन्कोडिंग में सार्वभौमिक रूप से प्रतिनिधित्व योग्य हैं।
लीगेसी एन्कोडिंग की सीमाओं के आसपास काम करने के लिए, एचटीएमएल को इस तरह डिज़ाइन किया गया है कि संख्यात्मक कैरेक्टर संदर्भ का उपयोग करके एचटीएमएल दस्तावेज़ के अंदर संपूर्ण यूनिकोड के कैरेक्टर का प्रतिनिधित्व करना संभव है: कैरेक्टर का अनुक्रम जो प्रतिनिधित्व किए जा रहे कैरेक्टर के यूनिकोड कोड बिंदु को स्पष्ट रूप से बताता है। कैरेक्टर संदर्भ फॉर्म <code>&amp;#</code><var>N</var><code>;</code>, जहां <var>N</var> या तो यूनिकोड कोड बिंदु के लिए [[दशमलव]] संख्या है, या [[हेक्साडेसिमल]] संख्या है, जिस स्थिति में इसे <code>x</code> द्वारा उपसर्ग किया जाना चाहिए। संख्यात्मक कैरेक्टर संदर्भ बनाने वाले कैरेक्टर इंटरनेट पर उपयोग के लिए स्वीकृत प्रत्येक एन्कोडिंग में सार्वभौमिक रूप से प्रतिनिधित्व योग्य हैं।


इस संदर्भ में हेक्साडेसिमल के लिए समर्थन हाल ही का है, इसलिए पुराने ब्राउज़रों को हेक्साडेसिमल संख्याओं के साथ संदर्भित वर्णों को प्रदर्शित करने में समस्या हो सकती है{{snd}} लेकिन उन्हें वैसे भी कोड पॉइंट 255 से ऊपर यूनिकोड वर्णों को प्रदर्शित करने में समस्या होगी। पुराने ब्राउज़रों के साथ बेहतर संगतता सुनिश्चित करने के लिए, हेक्साडेसिमल कोड बिंदु को दशमलव मान में परिवर्तित करना अभी भी सामान्य अभ्यास है (उदाहरण के लिए <code>&amp;#21512;</code> के बजाय <code>&amp;#x5408;</code>).
इस संदर्भ में हेक्साडेसिमल के लिए समर्थन हाल ही का है, इसलिए पुराने ब्राउज़रों को हेक्साडेसिमल संख्याओं के साथ संदर्भित कैरेक्टर को प्रदर्शित करने में समस्या हो सकती है{{snd}} लेकिन उन्हें वैसे भी कोड पॉइंट 255 से ऊपर यूनिकोड कैरेक्टर को प्रदर्शित करने में समस्या होगी। पुराने ब्राउज़रों के साथ उत्तम संगतता सुनिश्चित करने के लिए, हेक्साडेसिमल कोड बिंदु को दशमलव मान में परिवर्तित करना अभी भी सामान्य अभ्यास है (उदाहरण के लिए <code>&amp;#21512;</code> के अतिरिक्त <code>&amp;#x5408;</code>)


=== नामित वर्ण संस्थाएं ===
=== नामित कैरेक्टर संस्थाएं ===
{{Main|character entity reference}}
{{Main|वर्ण इकाई संदर्भ}}


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


इकाई संदर्भों के उपयोग के माध्यम से चरित्र संस्थाओं को एचटीएमएल दस्तावेज़ में शामिल किया जा सकता है, जो '<code>&amp;</code><var>EntityName</var><code>;</code>, जहां <var>EntityName</var> इकाई का नाम है। उदाहरण के लिए, <code>&amp;mdash;</code>, बहुत कुछ एक सा <code>&amp;#8212;</code> या <code>&amp;#x2014;</code>, प्रतिनिधित्व करता है {{U+|2014}}: em डैश वर्ण भले ही प्रयुक्त वर्ण एन्कोडिंग में वह वर्ण न हो।
इकाई संदर्भों के उपयोग के माध्यम से कैरेक्टर संस्थाओं को एचटीएमएल दस्तावेज़ में सम्मिलित किया जा सकता है, जो '<code>&amp;</code><var>EntityName</var><code>;</code>का रूप लेता है, जहां <var>EntityName</var> इकाई का नाम है। उदाहरण के लिए, <code>&amp;mdash;</code>, बहुत कुछ <code>&amp;#8212;</code> या <code>&amp;#x2014;</code>, {{U+|2014}} का प्रतिनिधित्व करता है: em डैश कैरेक्टर "" तथापि प्रयुक्त कैरेक्टर एन्कोडिंग में वह कैरेक्टर न हो।


पूरी सूची के लिए, देखें: XML और एचटीएमएल वर्ण इकाई संदर्भों की सूची।
पूरी सूची के लिए, देखें: एक्सएमएल और एचटीएमएल कैरेक्टर इकाई संदर्भों की सूची।


== वर्ण एन्कोडिंग निर्धारण ==
== कैरेक्टर एन्कोडिंग निर्धारण ==
एचटीएमएल को सही ढंग से संसाधित करने के लिए, वेब ब्राउज़र को यह पता लगाना चाहिए कि कौन से यूनिकोड वर्ण एचटीएमएल दस्तावेज़ के एन्कोडेड रूप से दर्शाए गए हैं। ऐसा करने के लिए, वेब ब्राउज़र को पता होना चाहिए कि किस एन्कोडिंग का उपयोग किया गया था।
एचटीएमएल को सही तरह से संसाधित करने के लिए, वेब ब्राउज़र को यह पता लगाना चाहिए कि कौन से यूनिकोड कैरेक्टर एचटीएमएल दस्तावेज़ के एन्कोडेड रूप से दर्शाए गए हैं। ऐसा करने के लिए, वेब ब्राउज़र को पता होना चाहिए कि किस एन्कोडिंग का उपयोग किया गया था।


=== एन्कोडिंग जानकारी ===
=== एन्कोडिंग जानकारी ===
जब कोई दस्तावेज़ [[MIME]] संदेश या परिवहन के माध्यम से प्रेषित होता है जो MIME सामग्री प्रकार जैसे [[HTTP]] प्रतिक्रिया का उपयोग करता है, तो संदेश सामग्री-प्रकार शीर्षलेख के माध्यम से एन्कोडिंग को संकेत दे सकता है, जैसे <code>Content-Type: text/एचटीएमएल; charset=UTF-8</code>. एन्कोडिंग घोषित करने के अन्य बाहरी साधनों की अनुमति है लेकिन शायद ही कभी इस्तेमाल किया जाता है। यदि दस्तावेज़ यूनिकोड एन्कोडिंग की तुलना का उपयोग करता है, तो एन्कोडिंग जानकारी [[बाइट ऑर्डर मार्क]] (बीओएम) के रूप में भी मौजूद हो सकती है। अंत में, एन्कोडिंग को एचटीएमएल सिंटैक्स के माध्यम से घोषित किया जा सकता है। के लिए <code>text/एचटीएमएल</code> क्रमांकन तब तक, जब तक पृष्ठ ASCII के विस्तार में एन्कोड किया गया हो (जैसे UTF-8, और इस प्रकार, यदि पृष्ठ UTF-16 का उपयोग नहीं कर रहा है), a <code>meta</code> तत्व, जैसे <code>&lt;meta http-equiv="content-type" content="text/एचटीएमएल; charset=UTF-8"&gt;</code> या ([[HTML5|एचटीएमएल5]] से शुरू) <code>&lt;meta charset="UTF-8"></code> इस्तेमाल किया जा सकता है। एक्सएमएल के रूप में क्रमबद्ध एचटीएमएल पृष्ठों के लिए, घोषणा विकल्प या तो एन्कोडिंग डिफ़ॉल्ट (जो एक्सएमएल दस्तावेजों के लिए यूटीएफ -8 है) पर भरोसा करना है, या एक्सएमएल एन्कोडिंग घोषणा का उपयोग करना है। XML के रूप में प्रस्तुत एचटीएमएल में मेटा विशेषता कोई भूमिका नहीं निभाती है।
जब कोई दस्तावेज़ [[MIME|एमआईएमई]] संदेश या परिवहन के माध्यम से प्रेषित होता है, जो एमआईएमई कंटेंट प्रकार जैसे [[HTTP|एचटीटीपी]] प्रतिक्रिया का उपयोग करता है, तो संदेश कंटेंट-प्रकार शीर्षलेख के माध्यम से एन्कोडिंग को संकेत दे सकता है, जैसे <code>Content-Type: text/html; charset=UTF-8</code>एन्कोडिंग घोषित करने के अन्य बाहरी साधनों की अनुमति है, लेकिन संभवतया ही कभी उपयोग किया जाता है। यदि दस्तावेज़ यूनिकोड एन्कोडिंग की तुलना का उपयोग करता है, तो एन्कोडिंग जानकारी [[बाइट ऑर्डर मार्क]] (बीओएम) के रूप में भी उपस्थित हो सकती है। अंत में, एन्कोडिंग को एचटीएमएल सिंटैक्स के माध्यम से घोषित किया जा सकता है। <code>text/html</code> क्रमांकन के लिए, जब तक पेज एएससीआईआई के विस्तार में एन्कोड किया गया हो (जैसे यूटीएफ-8, और इस प्रकार, यदि पेज यूटीएफ-16 का उपयोग नहीं कर रहा है), <code>meta</code> तत्व, जैसे <code>&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;</code> या ([[HTML5|एचटीएमएल5]] से प्रारंभ) <code>&lt;meta charset="UTF-8"></code> उपयोग किया जा सकता है। एक्सएमएल के रूप में क्रमबद्ध एचटीएमएल पेजों के लिए, घोषणा विकल्प या तो एन्कोडिंग डिफ़ॉल्ट (जो एक्सएमएल दस्तावेजों के लिए यूटीएफ -8 है) पर विश्वास करना है, या एक्सएमएल एन्कोडिंग घोषणा का उपयोग करना है। एक्सएमएल के रूप में प्रस्तुत एचटीएमएल में मेटा विशेषता कोई भूमिका नहीं निभाती है।


=== एन्कोडिंग डिफ़ॉल्ट ===
=== एन्कोडिंग डिफ़ॉल्ट ===
एन्कोडिंग डिफ़ॉल्ट तब लागू होता है जब कोई बाहरी या आंतरिक एन्कोडिंग घोषणा नहीं होती है और कोई बाइट ऑर्डर चिह्न भी नहीं होता है। जबकि XML के रूप में प्रस्तुत किए गए एचटीएमएल पृष्ठों के लिए एन्कोडिंग डिफ़ॉल्ट UTF-8 होना आवश्यक है, नियमित वेब पेज के लिए एन्कोडिंग डिफ़ॉल्ट (अर्थात: एचटीएमएल पृष्ठों के लिए क्रमबद्ध रूप से <code>text/एचटीएमएल</code>) ब्राउज़र के स्थानीयकरण के आधार पर भिन्न होता है। मुख्य रूप से पश्चिमी यूरोपीय भाषाओं के लिए स्थापित सिस्टम के लिए, यह आमतौर पर ISO 8859-1#Windows-1252|Windows-1252 होगा। सिरिलिक वर्णमाला स्थानों के लिए, डिफ़ॉल्ट आमतौर पर [[Windows-1251]] है। किसी ऐसे स्थान के ब्राउज़र के लिए जहां लीगेसी मल्टी-बाइट कैरेक्टर एनकोडिंग प्रचलित हैं, ऑटो-डिटेक्शन के कुछ रूप लागू होने की संभावना है।
एन्कोडिंग डिफ़ॉल्ट तब प्रयुक्त होता है, जब कोई बाहरी या आंतरिक एन्कोडिंग घोषणा नहीं होती है और कोई बाइट ऑर्डर चिह्न भी नहीं होता है। जबकि एक्सएमएल के रूप में प्रस्तुत किए गए एचटीएमएल पेजों के लिए एन्कोडिंग डिफ़ॉल्ट यूटीएफ-8 होना आवश्यक है, नियमित वेब पेज के लिए एन्कोडिंग डिफ़ॉल्ट (अर्थात: एचटीएमएल पेजों के लिए क्रमबद्ध रूप से <code>text/html</code>) ब्राउज़र के स्थानीयकरण के आधार पर भिन्न होता है। मुख्य रूप से पश्चिमी यूरोपीय भाषाओं के लिए स्थापित एक सिस्टम के लिए, यह सामान्यतः विंडोज-1252 होगा। सिरिलिक वर्णमाला स्थानों के लिए, डिफ़ॉल्ट सामान्यतः [[Windows-1251|विंडोज-1251]] है। किसी ऐसे स्थान के ब्राउज़र के लिए जहां लीगेसी मल्टी-बाइट कैरेक्टर एनकोडिंग प्रचलित हैं, ऑटो-डिटेक्शन के कुछ रूप प्रयुक्त होने की संभावना है।


=== एन्कोडिंग रुझान ===
=== एन्कोडिंग रुझान ===
[[प्रोग्रामिंग भाषा]]ओं और [[ऑपरेटिंग सिस्टम]] में 8-बिट पाठ प्रस्तुतियों की विरासत और एन्कोडिंग की बारीकियों को समझने की आवश्यकता के साथ बोझिल उपयोगकर्ताओं से बचने की इच्छा के कारण, एचटीएमएल लेखकों द्वारा उपयोग किए जाने वाले कई टेक्स्ट संपादक एन्कोडिंग के विकल्प की पेशकश करने में असमर्थ या अनिच्छुक हैं। फ़ाइलों को डिस्क में सहेजते समय और अक्सर बहुत सीमित सीमा से परे वर्णों के इनपुट की अनुमति भी नहीं देते हैं। नतीजतन, कई एचटीएमएल लेखक एन्कोडिंग मुद्दों से अनभिज्ञ हैं और उन्हें इस बात का कोई अंदाजा नहीं है कि उनके दस्तावेज़ वास्तव में किस एन्कोडिंग का उपयोग करते हैं। गलतफहमी, जैसे विश्वास है कि एन्कोडिंग घोषणा वास्तविक एन्कोडिंग में परिवर्तन को प्रभावित करती है (जबकि यह वास्तव में केवल लेबल है जो गलत हो सकता है), इस संपादक के रवैये का भी कारण है। उसी दिशा में योगदान देने वाला अन्य कारक, UTF-8 का आगमन है{{snd}} जो अन्य एन्कोडिंग की आवश्यकता को बहुत कम कर देता है, और इस प्रकार आधुनिक संपादक एचटीएमएल5 विनिर्देश द्वारा अनुशंसित डिफ़ॉल्ट रूप से जाते हैं,<ref>{{Cite web|url=http://www.w3.org/TR/html5/semantics.html#charset|title=HTML5|author=Ian Hickson|access-date=17 September 2011|year=2011|quote=Authors are encouraged to use UTF-8. Conformance checkers may advise authors against using legacy encodings. [RFC3629] Authoring tools should default to using UTF-8 for newly created documents. [RFC3629] }}</ref> यूटीएफ -8 के लिए।
[[प्रोग्रामिंग भाषा|प्रोग्रामिंग भाषाओं]] और [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] में 8-बिट टेक्स्ट प्रस्तुतियों की विरासत और एन्कोडिंग की बारीकियों को समझने की आवश्यकता के साथ बोझिल उपयोगकर्ताओं से बचने की इच्छा के कारण, एचटीएमएल लेखकों द्वारा उपयोग किए जाने वाले कई टेक्स्ट संपादक एन्कोडिंग के विकल्प की प्रस्तुति करने में असमर्थ या अनिच्छुक हैं। फ़ाइलों को डिस्क में सहेजते समय और अधिकांशतः बहुत सीमित सीमा से हटकर कैरेक्टर के इनपुट की अनुमति भी नहीं देते हैं। परिणामस्वरूप, कई एचटीएमएल लेखक एन्कोडिंग उद्देश्यों से अनभिज्ञ हैं और उन्हें इस बात का कोई अनुमान नहीं है कि उनके दस्तावेज़ वास्तव में किस एन्कोडिंग का उपयोग करते हैं। गलतफहमी, जैसे विश्वास है कि एन्कोडिंग घोषणा वास्तविक एन्कोडिंग में परिवर्तन को प्रभावित करती है (जबकि यह वास्तव में केवल लेबल है जो गलत हो सकता है), इस संपादक के व्यवहार का भी कारण है। उसी दिशा में योगदान देने वाला अन्य कारक, यूटीएफ-8 का आगमन है{{snd}} जो अन्य एन्कोडिंग की आवश्यकता को बहुत कम कर देता है, और इस प्रकार आधुनिक संपादक एचटीएमएल5 विनिर्देश द्वारा अनुशंसित यूटीएफ -8 के लिए डिफ़ॉल्ट रूप से जाते हैं।<ref>{{Cite web|url=http://www.w3.org/TR/html5/semantics.html#charset|title=HTML5|author=Ian Hickson|access-date=17 September 2011|year=2011|quote=Authors are encouraged to use UTF-8. Conformance checkers may advise authors against using legacy encodings. [RFC3629] Authoring tools should default to using UTF-8 for newly created documents. [RFC3629] }}</ref>


=== बाइट ऑर्डर मार्क/यूनिकोड सूँघना ===
=== बाइट ऑर्डर मार्क/यूनिकोड सूँघना ===
एचटीएमएल (सामग्री-प्रकार टेक्स्ट/एचटीएमएल और सामग्री/प्रकार एप्लिकेशन/एक्सएचटीएमएल+एक्सएमएल) के दोनों सीरियलाइजेशन के लिए, बाइट ऑर्डर मार्क (बीओएम) एचटीएमएल दस्तावेज़ के भीतर एन्कोडिंग जानकारी प्रसारित करने का प्रभावी तरीका है। UTF-8 के लिए, BOM वैकल्पिक है, जबकि UTF-16 और UTF-32 एनकोडिंग के लिए यह अनिवार्य है। (ध्यान दें: BOM के बिना UTF-16 और UTF-32 को औपचारिक रूप से अलग-अलग नामों से जाना जाता है, वे अलग-अलग एनकोडिंग हैं, और इस प्रकार कुछ प्रकार की एन्कोडिंग घोषणा की आवश्यकता होती है - [[UTF-16BE]], [[UTF-16LE]], [[UTF-32LE]] और [[UTF-32BE]] देखें .) BOM वर्ण (U+FEFF) के उपयोग का मतलब है कि एन्कोडिंग स्वचालित रूप से किसी भी प्रोसेसिंग एप्लिकेशन के लिए खुद को घोषित करती है। प्रसंस्करण अनुप्रयोगों को क्रमशः UTF-32, UTF-16 या UTF-8 एन्कोडेड के रूप में दस्तावेज़ की पहचान करने के लिए बाइट स्ट्रीम में प्रारंभिक 0x0000FEFF, 0xFEFF या 0xEFBBBF की तलाश करने की आवश्यकता है। इन एन्कोडिंग के लिए किसी अतिरिक्त मेटाडेटा तंत्र की आवश्यकता नहीं है क्योंकि बाइट-ऑर्डर चिह्न में प्रसंस्करण अनुप्रयोगों के लिए आवश्यक सभी जानकारी शामिल है। ज्यादातर परिस्थितियों में, बाइट-ऑर्डर मार्क कैरेक्टर को अन्य कैरेक्टर्स से अलग एडिटिंग एप्लिकेशन द्वारा हैंडल किया जाता है, इसलिए लेखक द्वारा गलत एन्कोडिंग को इंगित करने के लिए बाइट ऑर्डर मार्क को हटाने या अन्यथा बदलने का बहुत कम जोखिम होता है (जैसा कि एन्कोडिंग घोषित होने पर हो सकता है) अंग्रेजी/लैटिन लिपि में)। यदि दस्तावेज़ में बाइट-ऑर्डर चिह्न का अभाव है, तो तथ्य यह है कि एचटीएमएल दस्तावेज़ में पहला गैर-रिक्त मुद्रण योग्य वर्ण <(U+003C) माना जाता है, जिसका उपयोग UTF-8/UTF-16/UTF- निर्धारित करने के लिए किया जा सकता है। 32 एन्कोडिंग।
एचटीएमएल (कंटेंट-प्रकार "text/html" और कंटेंट/प्रकार "application/xhtml+xml") के दोनों सीरियलाइजेशन के लिए, बाइट ऑर्डर मार्क (बीओएम) एचटीएमएल दस्तावेज़ के अन्दर एन्कोडिंग जानकारी प्रसारित करने की प्रभावी विधि है। यूटीएफ-8 के लिए, बीओएम वैकल्पिक है, जबकि यूटीएफ-16 और यूटीएफ-32 एनकोडिंग के लिए यह अनिवार्य है। (ध्यान दें: बीओएम के बिना यूटीएफ-16 और यूटीएफ-32 को औपचारिक रूप से अलग-अलग नामों से जाना जाता है, वे अलग-अलग एनकोडिंग हैं, और इस प्रकार कुछ प्रकार की एन्कोडिंग घोषणा की आवश्यकता होती है - [[UTF-16BE|यूटीएफ-16BE]], [[UTF-16LE|यूटीएफ-16LE]], [[UTF-32LE|यूटीएफ-32LE]] और [[UTF-32BE|यूटीएफ-32BE]] देखें)। बीओएम कैरेक्टर (U+FEFF) के उपयोग का अर्थ है कि एन्कोडिंग स्वचालित रूप से किसी भी प्रोसेसिंग अनुप्रयोग के लिए स्वयं को घोषित करती है। प्रसंस्करण अनुप्रयोगों को क्रमशः यूटीएफ-32, यूटीएफ-16 या यूटीएफ-8 एन्कोडेड के रूप में दस्तावेज़ की पहचान करने के लिए बाइट स्ट्रीम में प्रारंभिक 0x0000FEFF, 0xFEFF या 0xEFBBBF की खोज करने की आवश्यकता है। इन एन्कोडिंग के लिए किसी अतिरिक्त मेटाडेटा प्रणाली की आवश्यकता नहीं है क्योंकि बाइट-ऑर्डर चिह्न में प्रसंस्करण अनुप्रयोगों के लिए आवश्यक सभी जानकारी सम्मिलित है। अधिकतर परिस्थितियों में, बाइट-ऑर्डर मार्क कैरेक्टर को अन्य कैरेक्टर्स से अलग एडिटिंग अनुप्रयोग द्वारा हैंडल किया जाता है, इसलिए लेखक द्वारा गलत एन्कोडिंग को इंगित करने के लिए बाइट ऑर्डर मार्क को हटाने या अन्यथा परिवर्तित करने का बहुत कम संकट होता है (जैसा कि एन्कोडिंग घोषित होने पर हो सकता है, अंग्रेजी/लैटिन लिपि में)। यदि दस्तावेज़ में बाइट-ऑर्डर चिह्न का अभाव है, तो तथ्य यह है कि एचटीएमएल दस्तावेज़ में पहला गैर-रिक्त मुद्रण योग्य कैरेक्टर <(U+003C) माना जाता है, जिसका उपयोग 32 एन्कोडिंग में यूटीएफ-8/यूटीएफ-16/यूटीएफ- निर्धारित करने के लिए किया जा सकता है।


=== एन्कोडिंग ओवरराइडिंग ===
=== एन्कोडिंग ओवरराइडिंग ===
कई एचटीएमएल दस्तावेज़ों को गलत एन्कोडिंग जानकारी, या कोई एन्कोडिंग जानकारी बिल्कुल नहीं दी जाती है। ऐसे मामलों में एन्कोडिंग निर्धारित करने के लिए, कई ब्राउज़र उपयोगकर्ता को किसी सूची से मैन्युअल रूप से एन्कोडिंग नाम चुनने की अनुमति देते हैं। वे एन्कोडिंग ऑटो-डिटेक्शन एल्गोरिदम भी नियोजित कर सकते हैं जो कंसर्ट में या के साथ काम करता है{{snd}} बीओएम के मामले में और एचटीएमएल के मामले में एक्सएमएल के रूप में कार्य करता है{{snd}} मैनुअल ओवरराइड के खिलाफ।
कई एचटीएमएल दस्तावेज़ों को गलत एन्कोडिंग जानकारी, या कोई एन्कोडिंग जानकारी बिल्कुल नहीं दी जाती है। ऐसी स्थितियों में एन्कोडिंग निर्धारित करने के लिए, कई ब्राउज़र उपयोगकर्ता को किसी सूची से मैन्युअल रूप से एन्कोडिंग नाम चुनने की अनुमति देते हैं। वे एन्कोडिंग ऑटो-डिटेक्शन एल्गोरिदम भी नियोजित कर सकते हैं जो कंसर्ट में या के साथ काम करता है{{snd}} बीओएम की स्थिति में और एचटीएमएल की स्थिति में एक्सएमएल के रूप में {{snd}} मैनुअल ओवरराइड के विरोध में कार्य करता है।


एचटीएमएल दस्तावेज़ों के लिए जो हैं <code>text/एचटीएमएल</code> क्रमबद्ध, मैनुअल ओवरराइड सभी दस्तावेजों पर लागू हो सकता है, या केवल उन पर लागू हो सकता है जिनके लिए घोषणाओं और/या बाइट पैटर्न को देखकर एन्कोडिंग का पता नहीं लगाया जा सकता है। यह तथ्य कि मैनुअल ओवरराइड मौजूद है और व्यापक रूप से उपयोग किया जाता है, वेब पर सटीक एन्कोडिंग घोषणाओं को अपनाने में बाधा डालता है; इसलिए समस्या के बने रहने की संभावना है। लेकिन ध्यान दें कि इंटरनेट एक्सप्लोरर, क्रोम और सफारी{{snd}} एक्सएमएल और दोनों के लिए <code>text/एचटीएमएल</code> क्रमबद्धता{{snd}} पृष्ठ में BOM शामिल होने पर एन्कोडिंग को ओवरराइड करने की अनुमति न दें।<ref>{{Cite web |title=12897 – In some parsers, UTF-8 BOM trumps the HTTP charset attribute (Encoding sniffing algorithm) |url=https://www.w3.org/Bugs/Public/show_bug.cgi?id=12897 |access-date=2023-03-09 |website=www.w3.org}}</ref>
एचटीएमएल दस्तावेज़ों के लिए जो <code>text/html</code> क्रमबद्ध हैं, मैनुअल ओवरराइड सभी दस्तावेजों पर प्रयुक्त हो सकता है, या केवल उन पर प्रयुक्त हो सकता है, जिनके लिए घोषणाओं और बाइट पैटर्न को देखकर एन्कोडिंग का पता नहीं लगाया जा सकता है। यह तथ्य कि मैनुअल ओवरराइड उपस्थित है और व्यापक रूप से उपयोग किया जाता है, वेब पर स्पष्ट एन्कोडिंग घोषणाओं को अपनाने में बाधा डालता है; इसलिए समस्या के बने रहने की संभावना है। लेकिन ध्यान दें कि इंटरनेट एक्सप्लोरर, क्रोम और सफारी{{snd}} एक्सएमएल और दोनों के लिए <code>text/html</code> क्रमबद्धता{{snd}} पेज में बीओएम सम्मिलित होने पर एन्कोडिंग को ओवरराइड करने की अनुमति न दें।<ref>{{Cite web |title=12897 – In some parsers, UTF-8 BOM trumps the HTTP charset attribute (Encoding sniffing algorithm) |url=https://www.w3.org/Bugs/Public/show_bug.cgi?id=12897 |access-date=2023-03-09 |website=www.w3.org}}</ref>
पसंदीदा XML लेबल के साथ क्रमबद्ध एचटीएमएल दस्तावेज़ों के लिए{{snd}} <code>application/xएचटीएमएल+xml</code>, मैनुअल एन्कोडिंग ओवरराइड की अनुमति नहीं है। ऐसे एक्सएमएल दस्तावेज़ के एन्कोडिंग को ओवरराइड करने का अर्थ होगा कि दस्तावेज़ एक्सएमएल होना बंद हो गया है, क्योंकि यह पता लगाने योग्य त्रुटियों के साथ एन्कोडिंग घोषणा के लिए एक्सएमएल दस्तावेज़ों के लिए घातक त्रुटि है। वर्तमान में, फ़ायरफ़ॉक्स जैसे गेको ब्राउज़र इस नियम का पालन करते हैं, जबकि अन्य सामान्य ब्राउज़र जो एचटीएमएल को XML के रूप में समर्थन करते हैं, जैसे कि वेबकिट ब्राउज़र (क्रोम / सफारी) <ref>{{Cite web |title=66189 – XML parser doesn't emit FATAL ERROR for all, detectable encoding errors |url=https://bugs.webkit.org/show_bug.cgi?id=66189 |access-date=2023-03-09 |website=bugs.webkit.org}}</ref> एक्सएचटीएमएल दस्तावेज़ों के एन्कोडिंग को मैन्युअल रूप से ओवरराइड करने की अनुमति दें।
 
पसंदीदा एक्सएमएल लेबल के साथ क्रमबद्ध एचटीएमएल दस्तावेज़ों के लिए{{snd}} <code>application/xhtml+xml</code>, मैनुअल एन्कोडिंग ओवरराइड की अनुमति नहीं है। ऐसे एक्सएमएल दस्तावेज़ के एन्कोडिंग को ओवरराइड करने का अर्थ होगा कि दस्तावेज़ एक्सएमएल होना बंद हो गया है, क्योंकि यह पता लगाने योग्य त्रुटियों के साथ एन्कोडिंग घोषणा के लिए एक्सएमएल दस्तावेज़ों के लिए घातक त्रुटि है। वर्तमान में, फ़ायरफ़ॉक्स जैसे गेको ब्राउज़र इस नियम का पालन करते हैं, जबकि अन्य सामान्य ब्राउज़र जो एचटीएमएल को एक्सएमएल के रूप में समर्थन करते हैं, जैसे कि वेबकिट ब्राउज़र (क्रोम / सफारी) <ref>{{Cite web |title=66189 – XML parser doesn't emit FATAL ERROR for all, detectable encoding errors |url=https://bugs.webkit.org/show_bug.cgi?id=66189 |access-date=2023-03-09 |website=bugs.webkit.org}}</ref> एक्सएचटीएमएल दस्तावेज़ों के एन्कोडिंग को मैन्युअल रूप से ओवरराइड करने की अनुमति दें।


== वेब ब्राउज़र समर्थन ==
== वेब ब्राउज़र समर्थन ==
Line 61: Line 62:


{| class="wikitable"
{| class="wikitable"
|+Example web browser support for Unicode characters
|+यूनिकोड कैरक्टर के लिए उदाहरण वेब ब्राउज़र समर्थन
|-
|-
! scope="col" |Character
! scope="col" |कैरक्टर
! scope="col" |एचटीएमएल char ref
! scope="col" |एचटीएमएल कैरक्टर संदर्भ
! scope="col" |Unicode name
! scope="col" |यूनिकोड नाम
! scope="col" |What your browser displays
! scope="col" |आपका ब्राउज़र क्या प्रदर्शित करता है
|-
|-
!scope="row" | U+0041
!scope="row" | U+0041
| <code>&amp;#65;</code> or <code>&amp;#x41;</code>
| <code>&amp;#65;</code> या <code>&amp;#x41;</code>
| [[Latin alphabet|Latin]] capital letter [[A]]
| [[Latin alphabet|लैटिन]] कैपिटल लेटर [[A]]
| style="text-align:center;font-size:large;" | A
| style="text-align:center;font-size:large;" | A
|-
|-
!scope="row" | U+00DF
!scope="row" | U+00DF
| <code>&amp;#223;</code> or <code>&amp;#xDF;</code>
| <code>&amp;#223;</code> या <code>&amp;#xDF;</code>
| Latin small letter [[ß|Sharp S]]
| लैटिन स्माल लेटर [[ß|शार्प S]]
| style="text-align:center;font-size:large;" | ß
| style="text-align:center;font-size:large;" | ß
|-
|-
!scope="row" | U+00FE
!scope="row" | U+00FE
| <code>&amp;#254;</code> or <code>&amp;#xFE;</code>
| <code>&amp;#254;</code> या <code>&amp;#xFE;</code>
| Latin small letter [[Thorn (letter)|Thorn]]
| लैटिन स्माल लेटर [[Thorn (letter)|काँटा]]
| style="text-align:center;font-size:large;" | þ
| style="text-align:center;font-size:large;" | þ
|-
|-
!scope="row" | U+0394
!scope="row" | U+0394
| <code>&amp;#916;</code> or <code>&amp;#x394;</code>
| <code>&amp;#916;</code> या <code>&amp;#x394;</code>
| [[Greek alphabet|Greek]] capital letter [[Delta (letter)|Delta]]
| [[Greek alphabet|ग्रीक]] कैपिटल लेटर [[Delta (letter)|डेल्टा]]
| style="text-align:center;font-size:large;" | Δ
| style="text-align:center;font-size:large;" | Δ
|-
|-
!scope="row" | U+017D
!scope="row" | U+017D
| <code>&amp;#381;</code> or <code>&amp;#x17D;</code>
| <code>&amp;#381;</code> या <code>&amp;#x17D;</code>
| Latin capital letter [[háček|Z with háček]]
| [[háček|Háček के साथ]] लैटिन कैपिटल लेटर [[háček|Z]]
| style="text-align:center;font-size:large;" | Ž
| style="text-align:center;font-size:large;" | Ž
|-
|-
!scope="row" | U+0419
!scope="row" | U+0419
| <code>&amp;#1049;</code> or <code>&amp;#x419;</code>
| <code>&amp;#1049;</code> या <code>&amp;#x419;</code>
| [[Cyrillic script|Cyrillic]] capital letter [[Short I]]
| [[Cyrillic script|सिरिलिक]] कैपिटल लेटर [[Short I|शॉर्ट I]]
| style="text-align:center;font-size:large;" | Й
| style="text-align:center;font-size:large;" | Й
|-
|-
!scope="row" | U+05E7
!scope="row" | U+05E7
| <code>&amp;#1511;</code> or <code>&amp;#x5E7;</code>
| <code>&amp;#1511;</code> या <code>&amp;#x5E7;</code>
| [[Hebrew alphabet|Hebrew]] letter [[Qoph#Hebrew Qof|Qof]]
| [[Hebrew alphabet|हिब्रू]] लेटर [[Qoph#Hebrew Qof|क्यूफ]]
| style="text-align:center;font-size:large;" | ק
| style="text-align:center;font-size:large;" | ק
|-
|-
!scope="row" | U+0645
!scope="row" | U+0645
| <code>&amp;#1605;</code> or <code>&amp;#x645;</code>
| <code>&amp;#1605;</code> या <code>&amp;#x645;</code>
| [[Arabic alphabet|Arabic]] letter [[Mem#Arabic mīm|Meem]]
| [[Arabic alphabet|अरबी]] अक्षर [[Mem#Arabic mīm|मीम]]  
| style="text-align:center;font-size:large;" | م
| style="text-align:center;font-size:large;" | م
|-
|-
!scope="row" | U+0E57
!scope="row" | U+0E57
| <code>&amp;#3671;</code> or <code>&amp;#xE57;</code>
| <code>&amp;#3671;</code> या <code>&amp;#xE57;</code>
| [[Thai alphabet|Thai]] [[numerical digit|digit]] [[7 (number)|7]]
| [[Thai alphabet|थाई]] [[numerical digit|संख्या]] [[7 (number)|7]]
| style="text-align:center;font-size:large;" | ๗
| style="text-align:center;font-size:large;" | ๗
|-
|-
!scope="row" | U+1250
!scope="row" | U+1250
| <code>&amp;#4688;</code> or <code>&amp;#x1250;</code>
| <code>&amp;#4688;</code> या <code>&amp;#x1250;</code>
| [[Ge'ez alphabet|Ge'ez]] syllable [[Qha]]
| [[Ge'ez alphabet|गीज़]] शब्दांश [[Qha]]  
| style="text-align:center;font-size:large;" | ቐ
| style="text-align:center;font-size:large;" | ቐ
|-
|-
!scope="row" | U+3042
!scope="row" | U+3042
| <code>&amp;#12354;</code> or <code>&amp;#x3042;</code>
| <code>&amp;#12354;</code> या <code>&amp;#x3042;</code>
| [[Hiragana]] letter A (Japanese)
| [[Hiragana|हीरागाना]] लेटर A (जापानी)  
| style="text-align:center;font-size:large;" | あ
| style="text-align:center;font-size:large;" | あ
|-
|-
!scope="row" | U+53F6
!scope="row" | U+53F6
| <code>&amp;#21494;</code> or <code>&amp;#x53F6;</code>
| <code>&amp;#21494;</code> या <code>&amp;#x53F6;</code>
| [[CJK Unified Ideographs|CJK Unified Ideograph]]-53F6 ([[simplified Chinese characters|Simplified Chinese]] "Leaf")
| [[CJK Unified Ideographs|सीजेके एकीकृत विचारधारा]]-53F6 ([[simplified Chinese characters|सरलीकृत चीनी]] "पत्ती")
| style="text-align:center;font-size:large;" | 叶
| style="text-align:center;font-size:large;" | 叶
|-
|-
!scope="row" | U+8449
!scope="row" | U+8449
| <code>&amp;#33865;</code> or <code>&amp;#x8449;</code>
| <code>&amp;#33865;</code> या <code>&amp;#x8449;</code>
| [[CJK Unified Ideographs|CJK Unified Ideograph]]-8449 ([[traditional Chinese characters|Traditional Chinese]] "Leaf")
| [[CJK Unified Ideographs|सीजेके एकीकृत विचारधारा]]-8449 ([[traditional Chinese characters|पारंपरिक चीनी]] "पत्ती")
| style="text-align:center;font-size:large;" | 葉
| style="text-align:center;font-size:large;" | 葉
|-
|-
!scope="row" | U+B5AB
!scope="row" | U+B5AB
| <code>&amp;#46507;</code> or <code>&amp;#xB5AB;</code>
| <code>&amp;#46507;</code> या <code>&amp;#xB5AB;</code>
| [[Hangul]] [[syllable]] Tteolp (Korean "Ssangtikeut Eo Rieulbieup")
| [[Hangul|हंगुल शब्दांश]] टेओलप (कोरियाई "सांगटिकेउट ईओ रीउलबिउप")
| style="text-align:center;font-size:large;" | 떫
| style="text-align:center;font-size:large;" | 떫
|-
|-
!scope="row" | U+16A0
!scope="row" | U+16A0
| <code>&amp;#5792;</code> or <code>&amp;#x16A0;</code>
| <code>&amp;#5792;</code> या <code>&amp;#x16A0;</code>
| [[Runic alphabet|Runic]] letter [[Fe (rune)|Fehu]]
| [[Runic alphabet|रूनिक]] अक्षर [[Fe (rune)|फेहू]]  
| style="text-align:center;font-size:large;" | ᚠ
| style="text-align:center;font-size:large;" | ᚠ
|-
|-
!scope="row" | U+0D37
!scope="row" | U+0D37
| <code>&amp;#3383;</code> or <code>&amp;#x0D37;</code>
| <code>&amp;#3383;</code> या <code>&amp;#x0D37;</code>
| [[Malayalam alphabet|Malayalam]] letter ഷ (ṣha)
| [[Malayalam alphabet|मलयालम]] अक्षर ഷ (ṣha)
| style="text-align:center;font-size:large;" | ഷ
| style="text-align:center;font-size:large;" | ഷ
|-
|-
!scope="row" | U+1F602
!scope="row" | U+1F602
| <code>&amp;#128514;</code> or <code>&amp;#x1F602;</code>
| <code>&amp;#128514;</code> या <code>&amp;#x1F602;</code>
| [[Face with Tears of Joy emoji]]
| [[Face with Tears of Joy emoji|खुशी के आंसू वाला चेहरा इमोजी]]
| style="text-align:center;font-size:large;" | 😂
| style="text-align:center;font-size:large;" | 😂
|-
|-
!scope="row" colspan=4 | To display all of the characters above, you may need to install one or more large multilingual fonts, like [[Code2000]].
!scope="row" colspan=4 | उपरोक्त सभी कैरक्टर को प्रदर्शित करने के लिए, आपको एक या अधिक बड़े बहुभाषी फ़ॉन्ट, जैसे [[Code2000]] स्थापित करने की आवश्यकता हो सकती है।
|}
|}
[[मोज़िला फ़ायरफ़ॉक्स]], [[ओपेरा (वेब ​​ब्राउज़र)]], [[सफारी (वेब ​​​​ब्राउज़र)]] और [[इंटरनेट एक्सप्लोरर]] (संस्करण 7 से) जैसे कुछ वेब ब्राउज़र पृष्ठ पर प्रत्येक व्यक्तिगत चरित्र को प्रदर्शित करने के लिए बुद्धिमानी से फ़ॉन्ट चुनकर बहुभाषी वेब पेज प्रदर्शित करने में सक्षम हैं। . वे [[यूनिकोड ब्लॉक]] के किसी भी मिश्रण को सही ढंग से प्रदर्शित करेंगे, जब तक कि ऑपरेटिंग सिस्टम में टाइपफेस # यूनिकोड फोंट की उपयुक्त सूची मौजूद हो।
[[मोज़िला फ़ायरफ़ॉक्स]], [[ओपेरा (वेब ​​ब्राउज़र)]], [[सफारी (वेब ​​​​ब्राउज़र)]] और [[इंटरनेट एक्सप्लोरर]] (संस्करण 7 से) जैसे कुछ वेब ब्राउज़र पेज पर प्रत्येक व्यक्तिगत कैरेक्टर को प्रदर्शित करने के लिए बुद्धिमानी से फ़ॉन्ट चुनकर बहुभाषी वेब पेज प्रदर्शित करने में सक्षम हैं। वे [[यूनिकोड ब्लॉक]] के किसी भी मिश्रण को सही तरह से प्रदर्शित करेंगे, जब तक कि ऑपरेटिंग प्रणाली में टाइपफेस यूनिकोड फोंट की उपयुक्त सूची उपस्थित हो।


पुराने ब्राउज़र, जैसे [[नेटस्केप नेविगेटर]] 4.77 और [[इंटरनेट एक्सप्लोरर 6]], केवल पृष्ठ के वर्ण एन्कोडिंग से जुड़े वर्तमान फ़ॉन्ट द्वारा समर्थित पाठ प्रदर्शित कर सकते हैं, और संख्यात्मक वर्ण संदर्भों को वर्तमान वर्ण एन्कोडिंग के भीतर कोड मानों के संदर्भ के रूप में गलत समझ सकते हैं, बल्कि यूनिकोड कोड बिंदुओं के संदर्भ में। जब आप ऐसे ब्राउज़र का उपयोग कर रहे हैं, तो यह संभावना नहीं है कि आपके कंप्यूटर में वे सभी फ़ॉन्ट हों, या यह कि ब्राउज़र एक ही पृष्ठ पर सभी उपलब्ध फ़ॉन्ट का उपयोग कर सकता है। नतीजतन, ब्राउज़र ऊपर दिए गए उदाहरणों में पाठ को सही ढंग से प्रदर्शित नहीं करेगा, हालांकि यह उनमें से एक सबसेट प्रदर्शित कर सकता है। क्योंकि वे मानक के अनुसार एन्कोड किए गए हैं, हालांकि, वे किसी भी सिस्टम पर सही ढंग से प्रदर्शित होंगे जो आज्ञाकारी है और जिसमें अक्षर उपलब्ध हैं। इसके अलावा, नामित इकाई संदर्भों में उपयोग के लिए दिए गए नाम वाले वर्ण दूसरों की तुलना में अधिक सामान्य रूप से उपलब्ध होने की संभावना है।
पुराने ब्राउज़र, जैसे [[नेटस्केप नेविगेटर]] 4.77 और [[इंटरनेट एक्सप्लोरर 6]], केवल पेज के कैरेक्टर एन्कोडिंग से जुड़े वर्तमान फ़ॉन्ट द्वारा समर्थित टेक्स्ट प्रदर्शित कर सकते हैं, और संख्यात्मक कैरेक्टर संदर्भों को वर्तमान कैरेक्टर एन्कोडिंग के अन्दर कोड मानों के संदर्भ के रूप में गलत समझ सकते हैं, बल्कि यूनिकोड कोड बिंदुओं के संदर्भ में गलत समझ सकते हैं। जब आप ऐसे ब्राउज़र का उपयोग कर रहे हैं, तो यह संभावना नहीं है कि आपके कंप्यूटर में वे सभी फ़ॉन्ट हों, या यह कि ब्राउज़र एक ही पेज पर सभी उपलब्ध फ़ॉन्ट का उपयोग कर सकता है। परिणामस्वरूप, ब्राउज़र ऊपर दिए गए उदाहरणों में टेक्स्ट को सही तरह से प्रदर्शित नहीं करेगा, चूंकि यह उनमें से एक सबसेट प्रदर्शित कर सकता है। क्योंकि वे मानक के अनुसार एन्कोड किए गए हैं, चूंकि, वे किसी भी प्रणाली पर सही तरह से प्रदर्शित होंगे जो आज्ञाकारी है और जिसमें अक्षर उपलब्ध हैं। इसके अतिरिक्त, नामित इकाई संदर्भों में उपयोग के लिए दिए गए नाम वाले कैरेक्टर दूसरों की तुलना में अधिक सामान्य रूप से उपलब्ध होने की संभावना है।


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


== उपयोग की आवृत्ति ==
== उपयोग की आवृत्ति ==
[[Google]] के वेब इंडेक्स के आंतरिक डेटा के अनुसार, दिसंबर 2007 में UTF-8 यूनिकोड एन्कोडिंग वेब पेजों पर सबसे अधिक इस्तेमाल किया जाने वाला एन्कोडिंग बन गया, ASCII (US) और ISO/IEC 8859-1|8859-1/Windows-1252 दोनों को पीछे छोड़ दिया ( पश्चिमी यूरोपियन)।<ref>[[Mark Davis (Unicode)|Mark Davis]]: [http://googleblog.blogspot.com/2008/05/moving-to-unicode-51.html Moving to Unicode 5.1] Official Google blog, 5 May 2008</ref>
[[Google|गूगल]] के वेब इंडेक्स के आंतरिक डेटा के अनुसार, दिसंबर 2007 में यूटीएफ-8 यूनिकोड एन्कोडिंग वेब पेजों पर सबसे अधिक उपयोग किया जाने वाला एन्कोडिंग बन गया, एएससीआईआई (यूएस) और 8859-1/1252 (पश्चिमी यूरोपीय) दोनों को पीछे छोड़ दिया।<ref>[[Mark Davis (Unicode)|Mark Davis]]: [http://googleblog.blogspot.com/2008/05/moving-to-unicode-51.html Moving to Unicode 5.1] Official Google blog, 5 May 2008</ref>




== यह भी देखें ==
== यह भी देखें ==
* मेटा: सहायता: विशेष वर्ण
* मेटा: सहायता: विशेष कैरेक्टर
* [[HTML में कैरेक्टर एनकोडिंग|एचटीएमएल में कैरेक्टर एनकोडिंग]]
* [[HTML में कैरेक्टर एनकोडिंग|एचटीएमएल में कैरेक्टर एनकोडिंग]]
* वर्णसेट का पता लगाना
* कैरेक्टरसेट का पता लगाना
* wikibooks: यूनिकोड/चरित्र संदर्भ|यूनिकोड चरित्र संदर्भ (wikibooks)
* wikibooks: यूनिकोड/कैरेक्टर संदर्भ|यूनिकोड कैरेक्टर संदर्भ (wikibooks)


==संदर्भ==
==संदर्भ==
Line 189: Line 190:
*[https://web.archive.org/web/20110924073701/http://www.w3.org/TR/html5/semantics.html#charset w3.org via web.archive.org] - Original एचटीएमएल5 Citation Reference saved via Wayback Machine
*[https://web.archive.org/web/20110924073701/http://www.w3.org/TR/html5/semantics.html#charset w3.org via web.archive.org] - Original एचटीएमएल5 Citation Reference saved via Wayback Machine
{{Unicode navigation}}
{{Unicode navigation}}
[[Category: एचटीएमएल]] [[Category: यूनिकोड]]


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Collapse templates]]
[[Category:Created On 13/06/2023]]
[[Category:Created On 13/06/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Webarchive template wayback links]]
[[Category:Wikipedia metatemplates]]
[[Category:एचटीएमएल]]
[[Category:यूनिकोड]]

Latest revision as of 10:20, 27 June 2023

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

आरएफसी 1866 में, प्रारंभिक एचटीएमएल 2.0 मानक, दस्तावेज़ कैरेक्टर सेट को आईएसओ-8859-1 (बाद में एचटीएमएल मानक विंडोज-1252 एन्कोडिंग के लिए डिफ़ॉल्ट) के रूप में परिभाषित किया गया था। इसे RFC 2070 द्वारा आईएसओ 10646 (जो मूल रूप से यूनिकोड के बराबर है) तक बढ़ाया गया था। यह विभिन्न भाषाओं के दस्तावेजों के बीच भिन्न नहीं होता है या विभिन्न प्लेटफार्मों पर बनाया जाता है। बाहरी कैरेक्टर एन्कोडिंग दस्तावेज़ के लेखक (या दस्तावेज़ बनाने के लिए लेखक द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर) द्वारा चुना जाता है और यह निर्धारित करता है कि दस्तावेज़ कैरेक्टर सेट से कैरेक्टर को दस्तावेज़ मानचित्र को संग्रहीत करने और संचारित करने के लिए बाइट्स का उपयोग कैसे किया जाता है। चयनित बाहरी कैरेक्टर एन्कोडिंग में उपस्थित कैरेक्टर, कैरेक्टर इकाई संदर्भों द्वारा प्रदर्शित नहीं किए जा सकते हैं।

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

एचटीएमएल दस्तावेज़ कैरेक्टर

वेब पेज सामान्यतः एचटीएमएल या एक्सएचटीएमएल दस्तावेज़ होते हैं। दोनों प्रकार के दस्तावेजों में मौलिक स्तर पर, कैरेक्टर (कंप्यूटिंग) होते हैं, जो कि ग्रेफेम और ग्रेफेम जैसी इकाइयाँ हैं, जो इस बात से स्वप्रणाली हैं कि वे कंप्यूटर स्टोरेज प्रणाली और कंप्यूटर नेटवर्क में कैसे प्रकट होते हैं।

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

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

तथापि दस्तावेज़ एचटीएमएल या एक्सएचटीएमएल हो, जब फाइल प्रणाली पर संग्रहीत किया जाता है या किसी नेटवर्क पर प्रसारित किया जाता है, तो दस्तावेज़ के कैरेक्टर को विशेष कैरेक्टर एन्कोडिंग के अनुसार बिट ऑक्टेट (बाइट्स) के अनुक्रम के रूप में एन्कोड किया जाता है। यह एन्कोडिंग या तो यूनिकोड परिवर्तन प्रारूप हो सकता है, जैसे यूटीएफ-8, जो किसी भी यूनिकोड कैरेक्टर को सीधे एन्कोड कर सकता है, या लीगेसी एन्कोडिंग, जैसे विंडोज-1252, जो नहीं कर सकता है। चूंकि, एन्कोडिंग का उपयोग करते समय भी जो सभी यूनिकोड कैरेक्टर का समर्थन नहीं करते हैं, एन्कोडेड दस्तावेज़ संख्यात्मक कैरेक्टर संदर्भों का उपयोग कर सकता है। उदाहरण के लिए, &#x263A; (☺) का उपयोग यूनिकोड कैरेक्टर सेट में मुस्कुराते हुए चेहरे के कैरेक्टर को इंगित करने के लिए किया जाता है।

कैरेक्टर एन्कोडिंग

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

संख्यात्मक कैरेक्टर संदर्भ

लीगेसी एन्कोडिंग की सीमाओं के आसपास काम करने के लिए, एचटीएमएल को इस तरह डिज़ाइन किया गया है कि संख्यात्मक कैरेक्टर संदर्भ का उपयोग करके एचटीएमएल दस्तावेज़ के अंदर संपूर्ण यूनिकोड के कैरेक्टर का प्रतिनिधित्व करना संभव है: कैरेक्टर का अनुक्रम जो प्रतिनिधित्व किए जा रहे कैरेक्टर के यूनिकोड कोड बिंदु को स्पष्ट रूप से बताता है। कैरेक्टर संदर्भ फॉर्म &#N;, जहां N या तो यूनिकोड कोड बिंदु के लिए दशमलव संख्या है, या हेक्साडेसिमल संख्या है, जिस स्थिति में इसे x द्वारा उपसर्ग किया जाना चाहिए। संख्यात्मक कैरेक्टर संदर्भ बनाने वाले कैरेक्टर इंटरनेट पर उपयोग के लिए स्वीकृत प्रत्येक एन्कोडिंग में सार्वभौमिक रूप से प्रतिनिधित्व योग्य हैं।

इस संदर्भ में हेक्साडेसिमल के लिए समर्थन हाल ही का है, इसलिए पुराने ब्राउज़रों को हेक्साडेसिमल संख्याओं के साथ संदर्भित कैरेक्टर को प्रदर्शित करने में समस्या हो सकती है – लेकिन उन्हें वैसे भी कोड पॉइंट 255 से ऊपर यूनिकोड कैरेक्टर को प्रदर्शित करने में समस्या होगी। पुराने ब्राउज़रों के साथ उत्तम संगतता सुनिश्चित करने के लिए, हेक्साडेसिमल कोड बिंदु को दशमलव मान में परिवर्तित करना अभी भी सामान्य अभ्यास है (उदाहरण के लिए &#21512; के अतिरिक्त &#x5408;)।

नामित कैरेक्टर संस्थाएं

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

इकाई संदर्भों के उपयोग के माध्यम से कैरेक्टर संस्थाओं को एचटीएमएल दस्तावेज़ में सम्मिलित किया जा सकता है, जो '&EntityName;का रूप लेता है, जहां EntityName इकाई का नाम है। उदाहरण के लिए, &mdash;, बहुत कुछ &#8212; या &#x2014;, U+2014 का प्रतिनिधित्व करता है: em डैश कैरेक्टर "—" तथापि प्रयुक्त कैरेक्टर एन्कोडिंग में वह कैरेक्टर न हो।

पूरी सूची के लिए, देखें: एक्सएमएल और एचटीएमएल कैरेक्टर इकाई संदर्भों की सूची।

कैरेक्टर एन्कोडिंग निर्धारण

एचटीएमएल को सही तरह से संसाधित करने के लिए, वेब ब्राउज़र को यह पता लगाना चाहिए कि कौन से यूनिकोड कैरेक्टर एचटीएमएल दस्तावेज़ के एन्कोडेड रूप से दर्शाए गए हैं। ऐसा करने के लिए, वेब ब्राउज़र को पता होना चाहिए कि किस एन्कोडिंग का उपयोग किया गया था।

एन्कोडिंग जानकारी

जब कोई दस्तावेज़ एमआईएमई संदेश या परिवहन के माध्यम से प्रेषित होता है, जो एमआईएमई कंटेंट प्रकार जैसे एचटीटीपी प्रतिक्रिया का उपयोग करता है, तो संदेश कंटेंट-प्रकार शीर्षलेख के माध्यम से एन्कोडिंग को संकेत दे सकता है, जैसे Content-Type: text/html; charset=UTF-8। एन्कोडिंग घोषित करने के अन्य बाहरी साधनों की अनुमति है, लेकिन संभवतया ही कभी उपयोग किया जाता है। यदि दस्तावेज़ यूनिकोड एन्कोडिंग की तुलना का उपयोग करता है, तो एन्कोडिंग जानकारी बाइट ऑर्डर मार्क (बीओएम) के रूप में भी उपस्थित हो सकती है। अंत में, एन्कोडिंग को एचटीएमएल सिंटैक्स के माध्यम से घोषित किया जा सकता है। text/html क्रमांकन के लिए, जब तक पेज एएससीआईआई के विस्तार में एन्कोड किया गया हो (जैसे यूटीएफ-8, और इस प्रकार, यदि पेज यूटीएफ-16 का उपयोग नहीं कर रहा है), meta तत्व, जैसे <meta http-equiv="content-type" content="text/html; charset=UTF-8"> या (एचटीएमएल5 से प्रारंभ) <meta charset="UTF-8"> उपयोग किया जा सकता है। एक्सएमएल के रूप में क्रमबद्ध एचटीएमएल पेजों के लिए, घोषणा विकल्प या तो एन्कोडिंग डिफ़ॉल्ट (जो एक्सएमएल दस्तावेजों के लिए यूटीएफ -8 है) पर विश्वास करना है, या एक्सएमएल एन्कोडिंग घोषणा का उपयोग करना है। एक्सएमएल के रूप में प्रस्तुत एचटीएमएल में मेटा विशेषता कोई भूमिका नहीं निभाती है।

एन्कोडिंग डिफ़ॉल्ट

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

एन्कोडिंग रुझान

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

बाइट ऑर्डर मार्क/यूनिकोड सूँघना

एचटीएमएल (कंटेंट-प्रकार "text/html" और कंटेंट/प्रकार "application/xhtml+xml") के दोनों सीरियलाइजेशन के लिए, बाइट ऑर्डर मार्क (बीओएम) एचटीएमएल दस्तावेज़ के अन्दर एन्कोडिंग जानकारी प्रसारित करने की प्रभावी विधि है। यूटीएफ-8 के लिए, बीओएम वैकल्पिक है, जबकि यूटीएफ-16 और यूटीएफ-32 एनकोडिंग के लिए यह अनिवार्य है। (ध्यान दें: बीओएम के बिना यूटीएफ-16 और यूटीएफ-32 को औपचारिक रूप से अलग-अलग नामों से जाना जाता है, वे अलग-अलग एनकोडिंग हैं, और इस प्रकार कुछ प्रकार की एन्कोडिंग घोषणा की आवश्यकता होती है - यूटीएफ-16BE, यूटीएफ-16LE, यूटीएफ-32LE और यूटीएफ-32BE देखें)। बीओएम कैरेक्टर (U+FEFF) के उपयोग का अर्थ है कि एन्कोडिंग स्वचालित रूप से किसी भी प्रोसेसिंग अनुप्रयोग के लिए स्वयं को घोषित करती है। प्रसंस्करण अनुप्रयोगों को क्रमशः यूटीएफ-32, यूटीएफ-16 या यूटीएफ-8 एन्कोडेड के रूप में दस्तावेज़ की पहचान करने के लिए बाइट स्ट्रीम में प्रारंभिक 0x0000FEFF, 0xFEFF या 0xEFBBBF की खोज करने की आवश्यकता है। इन एन्कोडिंग के लिए किसी अतिरिक्त मेटाडेटा प्रणाली की आवश्यकता नहीं है क्योंकि बाइट-ऑर्डर चिह्न में प्रसंस्करण अनुप्रयोगों के लिए आवश्यक सभी जानकारी सम्मिलित है। अधिकतर परिस्थितियों में, बाइट-ऑर्डर मार्क कैरेक्टर को अन्य कैरेक्टर्स से अलग एडिटिंग अनुप्रयोग द्वारा हैंडल किया जाता है, इसलिए लेखक द्वारा गलत एन्कोडिंग को इंगित करने के लिए बाइट ऑर्डर मार्क को हटाने या अन्यथा परिवर्तित करने का बहुत कम संकट होता है (जैसा कि एन्कोडिंग घोषित होने पर हो सकता है, अंग्रेजी/लैटिन लिपि में)। यदि दस्तावेज़ में बाइट-ऑर्डर चिह्न का अभाव है, तो तथ्य यह है कि एचटीएमएल दस्तावेज़ में पहला गैर-रिक्त मुद्रण योग्य कैरेक्टर <(U+003C) माना जाता है, जिसका उपयोग 32 एन्कोडिंग में यूटीएफ-8/यूटीएफ-16/यूटीएफ- निर्धारित करने के लिए किया जा सकता है।

एन्कोडिंग ओवरराइडिंग

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

एचटीएमएल दस्तावेज़ों के लिए जो text/html क्रमबद्ध हैं, मैनुअल ओवरराइड सभी दस्तावेजों पर प्रयुक्त हो सकता है, या केवल उन पर प्रयुक्त हो सकता है, जिनके लिए घोषणाओं और बाइट पैटर्न को देखकर एन्कोडिंग का पता नहीं लगाया जा सकता है। यह तथ्य कि मैनुअल ओवरराइड उपस्थित है और व्यापक रूप से उपयोग किया जाता है, वेब पर स्पष्ट एन्कोडिंग घोषणाओं को अपनाने में बाधा डालता है; इसलिए समस्या के बने रहने की संभावना है। लेकिन ध्यान दें कि इंटरनेट एक्सप्लोरर, क्रोम और सफारी – एक्सएमएल और दोनों के लिए text/html क्रमबद्धता – पेज में बीओएम सम्मिलित होने पर एन्कोडिंग को ओवरराइड करने की अनुमति न दें।[2]

पसंदीदा एक्सएमएल लेबल के साथ क्रमबद्ध एचटीएमएल दस्तावेज़ों के लिए – application/xhtml+xml, मैनुअल एन्कोडिंग ओवरराइड की अनुमति नहीं है। ऐसे एक्सएमएल दस्तावेज़ के एन्कोडिंग को ओवरराइड करने का अर्थ होगा कि दस्तावेज़ एक्सएमएल होना बंद हो गया है, क्योंकि यह पता लगाने योग्य त्रुटियों के साथ एन्कोडिंग घोषणा के लिए एक्सएमएल दस्तावेज़ों के लिए घातक त्रुटि है। वर्तमान में, फ़ायरफ़ॉक्स जैसे गेको ब्राउज़र इस नियम का पालन करते हैं, जबकि अन्य सामान्य ब्राउज़र जो एचटीएमएल को एक्सएमएल के रूप में समर्थन करते हैं, जैसे कि वेबकिट ब्राउज़र (क्रोम / सफारी) [3] एक्सएचटीएमएल दस्तावेज़ों के एन्कोडिंग को मैन्युअल रूप से ओवरराइड करने की अनुमति दें।

वेब ब्राउज़र समर्थन

कई ब्राउज़र पूरे यूनिकोड प्रदर्शनों की सूची के केवल छोटे उपसमुच्चय को प्रदर्शित करने में सक्षम हैं। यहां बताया गया है कि आपका ब्राउज़र विभिन्न यूनिकोड कोड बिंदुओं को कैसे प्रदर्शित करता है:

यूनिकोड कैरक्टर के लिए उदाहरण वेब ब्राउज़र समर्थन
कैरक्टर एचटीएमएल कैरक्टर संदर्भ यूनिकोड नाम आपका ब्राउज़र क्या प्रदर्शित करता है
U+0041 &#65; या &#x41; लैटिन कैपिटल लेटर A A
U+00DF &#223; या &#xDF; लैटिन स्माल लेटर शार्प S ß
U+00FE &#254; या &#xFE; लैटिन स्माल लेटर काँटा þ
U+0394 &#916; या &#x394; ग्रीक कैपिटल लेटर डेल्टा Δ
U+017D &#381; या &#x17D; Háček के साथ लैटिन कैपिटल लेटर Z Ž
U+0419 &#1049; या &#x419; सिरिलिक कैपिटल लेटर शॉर्ट I Й
U+05E7 &#1511; या &#x5E7; हिब्रू लेटर क्यूफ ק
U+0645 &#1605; या &#x645; अरबी अक्षर मीम م
U+0E57 &#3671; या &#xE57; थाई संख्या 7
U+1250 &#4688; या &#x1250; गीज़ शब्दांश Qha
U+3042 &#12354; या &#x3042; हीरागाना लेटर A (जापानी)
U+53F6 &#21494; या &#x53F6; सीजेके एकीकृत विचारधारा-53F6 (सरलीकृत चीनी "पत्ती")
U+8449 &#33865; या &#x8449; सीजेके एकीकृत विचारधारा-8449 (पारंपरिक चीनी "पत्ती")
U+B5AB &#46507; या &#xB5AB; हंगुल शब्दांश टेओलप (कोरियाई "सांगटिकेउट ईओ रीउलबिउप")
U+16A0 &#5792; या &#x16A0; रूनिक अक्षर फेहू
U+0D37 &#3383; या &#x0D37; मलयालम अक्षर ഷ (ṣha)
U+1F602 &#128514; या &#x1F602; खुशी के आंसू वाला चेहरा इमोजी 😂
उपरोक्त सभी कैरक्टर को प्रदर्शित करने के लिए, आपको एक या अधिक बड़े बहुभाषी फ़ॉन्ट, जैसे Code2000 स्थापित करने की आवश्यकता हो सकती है।

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

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

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

उपयोग की आवृत्ति

गूगल के वेब इंडेक्स के आंतरिक डेटा के अनुसार, दिसंबर 2007 में यूटीएफ-8 यूनिकोड एन्कोडिंग वेब पेजों पर सबसे अधिक उपयोग किया जाने वाला एन्कोडिंग बन गया, एएससीआईआई (यूएस) और 8859-1/1252 (पश्चिमी यूरोपीय) दोनों को पीछे छोड़ दिया।[4]


यह भी देखें

संदर्भ

  1. Ian Hickson (2011). "HTML5". Retrieved 17 September 2011. Authors are encouraged to use UTF-8. Conformance checkers may advise authors against using legacy encodings. [RFC3629] Authoring tools should default to using UTF-8 for newly created documents. [RFC3629]
  2. "12897 – In some parsers, UTF-8 BOM trumps the HTTP charset attribute (Encoding sniffing algorithm)". www.w3.org. Retrieved 2023-03-09.
  3. "66189 – XML parser doesn't emit FATAL ERROR for all, detectable encoding errors". bugs.webkit.org. Retrieved 2023-03-09.
  4. Mark Davis: Moving to Unicode 5.1 Official Google blog, 5 May 2008


बाहरी संबंध