यूनिकोड और एचटीएमएल: Difference between revisions
Line 4: | Line 4: | ||
हाइपरटेक्स्ट मार्कअप भाषा ([[एचटीएमएल ईमेल]]) का उपयोग करके लिखे गए वेब पेजों में यूनिकोड यूनिवर्सल कैरेक्टर सेट के साथ बहुभाषी टेक्स्ट हो सकता है। यूनिकोड और एचटीएमएल के बीच संबंध की कुंजी "दस्तावेज़ कैरेक्टर सेट" के बीच का संबंध है, जो कैरेक्टर के सेट को परिभाषित करता है, जो एचटीएमएल दस्तावेज़ में उपस्थित हो सकता है और उन्हें संख्याएँ निर्दिष्ट करता है, और "बाहरी कैरेक्टर एन्कोडिंग", या "चारसेट", किसी दिए गए दस्तावेज़ को बाइट्स के अनुक्रम के रूप में एन्कोड करने के लिए उपयोग किया जाता है। | हाइपरटेक्स्ट मार्कअप भाषा ([[एचटीएमएल ईमेल]]) का उपयोग करके लिखे गए वेब पेजों में यूनिकोड यूनिवर्सल कैरेक्टर सेट के साथ बहुभाषी टेक्स्ट हो सकता है। यूनिकोड और एचटीएमएल के बीच संबंध की कुंजी "दस्तावेज़ कैरेक्टर सेट" के बीच का संबंध है, जो कैरेक्टर के सेट को परिभाषित करता है, जो एचटीएमएल दस्तावेज़ में उपस्थित हो सकता है और उन्हें संख्याएँ निर्दिष्ट करता है, और "बाहरी कैरेक्टर एन्कोडिंग", या "चारसेट", किसी दिए गए दस्तावेज़ को बाइट्स के अनुक्रम के रूप में एन्कोड करने के लिए उपयोग किया जाता है। | ||
[rfc:1866 आरएफसी 1866] में, प्रारंभिक एचटीएमएल 2.0 मानक, दस्तावेज़ कैरेक्टर सेट को ISO-8859-1 (बाद में एचटीएमएल मानक [[Windows-1252|विंडोज-1252]] एन्कोडिंग के लिए डिफ़ॉल्ट) के रूप में परिभाषित किया गया था। इसे {{IETF RFC|2070}} द्वारा [[आईएसओ 10646]] (जो मूल रूप से यूनिकोड के बराबर है) तक बढ़ाया गया था। यह विभिन्न भाषाओं के दस्तावेजों के बीच भिन्न नहीं होता है या विभिन्न प्लेटफार्मों पर बनाया जाता है। बाहरी [[अक्षरों को सांकेतिक अक्षरों में बदलना|कैरेक्टर एन्कोडिंग]] दस्तावेज़ के लेखक (या दस्तावेज़ बनाने के लिए लेखक द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर) द्वारा चुना जाता है और यह निर्धारित करता है कि दस्तावेज़ कैरेक्टर सेट से कैरेक्टर | [rfc:1866 आरएफसी 1866] में, प्रारंभिक एचटीएमएल 2.0 मानक, दस्तावेज़ कैरेक्टर सेट को ISO-8859-1 (बाद में एचटीएमएल मानक [[Windows-1252|विंडोज-1252]] एन्कोडिंग के लिए डिफ़ॉल्ट) के रूप में परिभाषित किया गया था। इसे {{IETF RFC|2070}} द्वारा [[आईएसओ 10646]] (जो मूल रूप से यूनिकोड के बराबर है) तक बढ़ाया गया था। यह विभिन्न भाषाओं के दस्तावेजों के बीच भिन्न नहीं होता है या विभिन्न प्लेटफार्मों पर बनाया जाता है। बाहरी [[अक्षरों को सांकेतिक अक्षरों में बदलना|कैरेक्टर एन्कोडिंग]] दस्तावेज़ के लेखक (या दस्तावेज़ बनाने के लिए लेखक द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर) द्वारा चुना जाता है और यह निर्धारित करता है कि दस्तावेज़ कैरेक्टर सेट से कैरेक्टर को दस्तावेज़ मानचित्र को संग्रहीत करने और संचारित करने के लिए बाइट्स का उपयोग कैसे किया जाता है। चयनित बाहरी कैरेक्टर एन्कोडिंग में उपस्थित कैरेक्टर, कैरेक्टर इकाई संदर्भों द्वारा प्रदर्शित नहीं किए जा सकते हैं। | ||
[[यूनिकोड]] और एचटीएमएल के बीच संबंध कई कंप्यूटर व्यापारियों, दस्तावेज़ लेखकों और [[वर्ल्ड वाइड वेब]] उपयोगकर्ताओं के लिए समान रूप से कठिन विषय है। विभिन्न [[प्राकृतिक भाषा|प्राकृतिक भाषाओं]] और लेखन प्रणालियों से [[ वेब पृष्ठ | वेब पेज]] में टेक्स्ट का स्पष्ट प्रतिनिधित्व कैरेक्टर एन्कोडिंग, मार्कअप भाषा सिंटैक्स, [[कंप्यूटर फ़ॉन्ट]] और [[वेब ब्राउज़र|वेब ब्राउज़रों]] द्वारा समर्थन के विभिन्न स्तरों के विवरण से जटिल है। | [[यूनिकोड]] और एचटीएमएल के बीच संबंध कई कंप्यूटर व्यापारियों, दस्तावेज़ लेखकों और [[वर्ल्ड वाइड वेब]] उपयोगकर्ताओं के लिए समान रूप से कठिन विषय है। विभिन्न [[प्राकृतिक भाषा|प्राकृतिक भाषाओं]] और लेखन प्रणालियों से [[ वेब पृष्ठ |वेब पेज]] में टेक्स्ट का स्पष्ट प्रतिनिधित्व कैरेक्टर एन्कोडिंग, मार्कअप भाषा सिंटैक्स, [[कंप्यूटर फ़ॉन्ट]] और [[वेब ब्राउज़र|वेब ब्राउज़रों]] द्वारा समर्थन के विभिन्न स्तरों के विवरण से जटिल है। | ||
== एचटीएमएल दस्तावेज़ कैरेक्टर == | == एचटीएमएल दस्तावेज़ कैरेक्टर == | ||
वेब पेज सामान्यतः एचटीएमएल या [[XHTML|एक्सएचटीएमएल]] दस्तावेज़ होते हैं। दोनों प्रकार के दस्तावेजों में मौलिक स्तर पर, [[चरित्र (कंप्यूटिंग)|कैरेक्टर (कंप्यूटिंग)]] होते हैं, जो कि [[ग्रफीम|ग्रेफेम]] और ग्रेफेम जैसी इकाइयाँ हैं, जो इस बात से स्वप्रणाली हैं कि वे [[ कंप्यूटर भंडारण | कंप्यूटर स्टोरेज]] प्रणाली और [[ संगणक संजाल | कंप्यूटर नेटवर्क]] में कैसे प्रकट होते हैं। | वेब पेज सामान्यतः एचटीएमएल या [[XHTML|एक्सएचटीएमएल]] दस्तावेज़ होते हैं। दोनों प्रकार के दस्तावेजों में मौलिक स्तर पर, [[चरित्र (कंप्यूटिंग)|कैरेक्टर (कंप्यूटिंग)]] होते हैं, जो कि [[ग्रफीम|ग्रेफेम]] और ग्रेफेम जैसी इकाइयाँ हैं, जो इस बात से स्वप्रणाली हैं कि वे [[ कंप्यूटर भंडारण |कंप्यूटर स्टोरेज]] प्रणाली और [[ संगणक संजाल |कंप्यूटर नेटवर्क]] में कैसे प्रकट होते हैं। | ||
एचटीएमएल दस्तावेज़ यूनिकोड कैरेक्टर | एचटीएमएल दस्तावेज़ यूनिकोड कैरेक्टर का क्रम है। अधिक विशेष रूप से, एचटीएमएल 4.0 दस्तावेज़ों को एचटीएमएल दस्तावेज़ कैरेक्टर सेट में कैरेक्टर को सम्मिलित करने की आवश्यकता होती है: कैरेक्टर प्रदर्शनों की सूची जिसमें प्रत्येक कैरेक्टर को अद्वितीय, गैर-नकारात्मक पूर्णांक कोड बिंदु निर्दिष्ट किया जाता है। यह सेट एचटीएमएल 4.0 [[दस्तावेज़ प्रकार परिभाषा|डीटीडी]] में परिभाषित किया गया है, जो सिंटैक्स (कैरेक्टर के स्वीकार्य क्रम) को भी स्थापित करता है, जो वैध एचटीएमएल दस्तावेज़ का उत्पादन कर सकता है। एचटीएमएल 4.0 के लिए निर्धारित एचटीएमएल दस्तावेज़ कैरेक्टर में अधिकांश, लेकिन सभी नहीं, यूनिकोड और आईएसओ/आईईसी 10646 [[यूनिवर्सल कैरेक्टर सेट]] (यूसीएस) द्वारा संयुक्त रूप से परिभाषित कैरेक्टर सम्मिलित हैं। | ||
एचटीएमएल दस्तावेज़ों की तरह, एक्सएचटीएमएल दस्तावेज़ यूनिकोड कैरेक्टर | एचटीएमएल दस्तावेज़ों की तरह, एक्सएचटीएमएल दस्तावेज़ यूनिकोड कैरेक्टर का क्रम है। चूंकि, [[एचटीएमएल|एक्सएचटीएमएल]] दस्तावेज़, [[एक्सएमएल]] दस्तावेज़ है, जो अमूर्तता की स्पष्ट दस्तावेज़ कैरेक्टर परत नहीं होने के अतिरिक्त, अनुमेय कैरेक्टर की एक समान परिभाषा पर निर्भर करता है, जो यूनिकोड / यूसीएस कैरेक्टर परिभाषाओं के अधिकांश, लेकिन सभी को कवर नहीं करता है। एचटीएमएल और एक्सएचटीएमएल/एक्सएमएल द्वारा उपयोग किए जाने वाले सेट थोड़े अलग हैं, लेकिन इन अंतरों का औसत दस्तावेज़ लेखक पर बहुत कम प्रभाव पड़ता है। | ||
तथापि दस्तावेज़ एचटीएमएल या एक्सएचटीएमएल हो, जब [[फाइल सिस्टम|फाइल प्रणाली]] पर संग्रहीत किया जाता है या किसी नेटवर्क पर प्रसारित किया जाता है, तो दस्तावेज़ के कैरेक्टर | तथापि दस्तावेज़ एचटीएमएल या एक्सएचटीएमएल हो, जब [[फाइल सिस्टम|फाइल प्रणाली]] पर संग्रहीत किया जाता है या किसी नेटवर्क पर प्रसारित किया जाता है, तो दस्तावेज़ के कैरेक्टर को विशेष कैरेक्टर एन्कोडिंग के अनुसार [[ अंश |बिट]] [[ऑक्टेट (कंप्यूटिंग)|ऑक्टेट]] ([[बाइट|बाइट्स]]) के अनुक्रम के रूप में एन्कोड किया जाता है। यह एन्कोडिंग या तो [[यूनिकोड परिवर्तन प्रारूप]] हो सकता है, जैसे [[UTF-8|यूटीएफ-8]], जो किसी भी यूनिकोड कैरेक्टर को सीधे एन्कोड कर सकता है, या लीगेसी एन्कोडिंग, जैसे विंडोज-1252, जो नहीं कर सकता है। चूंकि, एन्कोडिंग का उपयोग करते समय भी जो सभी यूनिकोड कैरेक्टर का समर्थन नहीं करते हैं, एन्कोडेड दस्तावेज़ संख्यात्मक कैरेक्टर संदर्भों का उपयोग कर सकता है। उदाहरण के लिए, <code>&#x263A;</code> (☺) का उपयोग यूनिकोड कैरेक्टर सेट में मुस्कुराते हुए चेहरे के कैरेक्टर को इंगित करने के लिए किया जाता है। | ||
=== कैरेक्टर एन्कोडिंग === | === कैरेक्टर एन्कोडिंग === | ||
संख्यात्मक कैरेक्टर संदर्भों का सहारा लिए बिना सभी यूनिकोड कैरेक्टर | संख्यात्मक कैरेक्टर संदर्भों का सहारा लिए बिना सभी यूनिकोड कैरेक्टर का समर्थन करने के लिए, वेब पेज में सभी यूनिकोड को सम्मिलित करने वाला एन्कोडिंग होना चाहिए। सबसे लोकप्रिय यूटीएफ-8 है, जहां [[ASCII|एएससीआईआई]] कैरेक्टर, जैसे अंग्रेजी अक्षर, अंक, और कुछ अन्य सामान्य कैरेक्टर एएससीआईआई के विरुद्ध अपरिवर्तित संरक्षित किए जाते हैं। यह एचटीएमएल कोड (जैसे <nowiki><br></nowiki> और <nowiki></div></nowiki>) को एएससीआईआई की तुलना में अपरिवर्तित बनाता है। एएससीआईआई श्रेणी के बाहर के कैरेक्टर 2–4 बाइट्स में संग्रहित किए जाते हैं। [[UTF-16|यूटीएफ-16]] का उपयोग करना भी संभव है, जहां अधिकांश कैरेक्टर को अलग-अलग [[endianness|एंडियननेस]] के साथ दो बाइट के रूप में संग्रहीत किया जाता है, जो आधुनिक ब्राउज़रों द्वारा समर्थित है लेकिन सामान्यतः कम उपयोग किया जाता है। | ||
=== संख्यात्मक कैरेक्टर संदर्भ === | === संख्यात्मक कैरेक्टर संदर्भ === | ||
{{Main|सांख्यिक वर्ण संदर्भ}} | {{Main|सांख्यिक वर्ण संदर्भ}} | ||
लीगेसी एन्कोडिंग की सीमाओं के आसपास काम करने के लिए, एचटीएमएल को इस तरह डिज़ाइन किया गया है कि संख्यात्मक कैरेक्टर संदर्भ का उपयोग करके एचटीएमएल दस्तावेज़ के अंदर संपूर्ण यूनिकोड के कैरेक्टर | लीगेसी एन्कोडिंग की सीमाओं के आसपास काम करने के लिए, एचटीएमएल को इस तरह डिज़ाइन किया गया है कि संख्यात्मक कैरेक्टर संदर्भ का उपयोग करके एचटीएमएल दस्तावेज़ के अंदर संपूर्ण यूनिकोड के कैरेक्टर का प्रतिनिधित्व करना संभव है: कैरेक्टर का अनुक्रम जो प्रतिनिधित्व किए जा रहे कैरेक्टर के यूनिकोड कोड बिंदु को स्पष्ट रूप से बताता है। कैरेक्टर संदर्भ फॉर्म <code>&#</code><var>N</var><code>;</code>, जहां <var>N</var> या तो यूनिकोड कोड बिंदु के लिए [[दशमलव]] संख्या है, या [[हेक्साडेसिमल]] संख्या है, जिस स्थिति में इसे <code>x</code> द्वारा उपसर्ग किया जाना चाहिए। संख्यात्मक कैरेक्टर संदर्भ बनाने वाले कैरेक्टर इंटरनेट पर उपयोग के लिए स्वीकृत प्रत्येक एन्कोडिंग में सार्वभौमिक रूप से प्रतिनिधित्व योग्य हैं। | ||
इस संदर्भ में हेक्साडेसिमल के लिए समर्थन हाल ही का है, इसलिए पुराने ब्राउज़रों को हेक्साडेसिमल संख्याओं के साथ संदर्भित कैरेक्टर | इस संदर्भ में हेक्साडेसिमल के लिए समर्थन हाल ही का है, इसलिए पुराने ब्राउज़रों को हेक्साडेसिमल संख्याओं के साथ संदर्भित कैरेक्टर को प्रदर्शित करने में समस्या हो सकती है{{snd}} लेकिन उन्हें वैसे भी कोड पॉइंट 255 से ऊपर यूनिकोड कैरेक्टर को प्रदर्शित करने में समस्या होगी। पुराने ब्राउज़रों के साथ उत्तम संगतता सुनिश्चित करने के लिए, हेक्साडेसिमल कोड बिंदु को दशमलव मान में परिवर्तित करना अभी भी सामान्य अभ्यास है (उदाहरण के लिए <code>&#21512;</code> के अतिरिक्त <code>&#x5408;</code>)। | ||
=== नामित कैरेक्टर संस्थाएं === | === नामित कैरेक्टर संस्थाएं === | ||
{{Main|वर्ण इकाई संदर्भ}} | {{Main|वर्ण इकाई संदर्भ}} | ||
एचटीएमएल 4 में, कैरेक्टर | एचटीएमएल 4 में, कैरेक्टर के लिए 252 नामित कैरेक्टर संस्थाओं का मानक सेट है - कुछ सामान्य, कुछ अस्पष्ट - जो या तो कुछ कैरेक्टर एन्कोडिंग में नहीं पाए जाते हैं या कुछ संदर्भों में मार्कअप संवेदनशील होते हैं (उदाहरण के लिए कोण कोष्ठक और उद्धरण चिह्न)। चूंकि किसी भी यूनिकोड कैरेक्टर को उसके संख्यात्मक कोड बिंदु द्वारा संदर्भित किया जा सकता है, कुछ एचटीएमएल दस्तावेज़ लेखक इसके अतिरिक्त इन नामित संस्थाओं का उपयोग करना पसंद करते हैं, जहां संभव हो, क्योंकि वे कम गुप्त हैं और प्रारंभिक ब्राउज़रों द्वारा उत्तम समर्थित थे। | ||
इकाई संदर्भों के उपयोग के माध्यम से कैरेक्टर संस्थाओं को एचटीएमएल दस्तावेज़ में सम्मिलित किया जा सकता है, जो '<code>&</code><var>EntityName</var><code>;</code>का रूप लेता है, जहां <var>EntityName</var> इकाई का नाम है। उदाहरण के लिए, <code>&mdash;</code>, बहुत कुछ <code>&#8212;</code> या <code>&#x2014;</code>, {{U+|2014}} का प्रतिनिधित्व करता है: em डैश कैरेक्टर "—" तथापि प्रयुक्त कैरेक्टर एन्कोडिंग में वह कैरेक्टर न हो। | इकाई संदर्भों के उपयोग के माध्यम से कैरेक्टर संस्थाओं को एचटीएमएल दस्तावेज़ में सम्मिलित किया जा सकता है, जो '<code>&</code><var>EntityName</var><code>;</code>का रूप लेता है, जहां <var>EntityName</var> इकाई का नाम है। उदाहरण के लिए, <code>&mdash;</code>, बहुत कुछ <code>&#8212;</code> या <code>&#x2014;</code>, {{U+|2014}} का प्रतिनिधित्व करता है: em डैश कैरेक्टर "—" तथापि प्रयुक्त कैरेक्टर एन्कोडिंग में वह कैरेक्टर न हो। | ||
Line 40: | Line 40: | ||
=== एन्कोडिंग जानकारी === | === एन्कोडिंग जानकारी === | ||
जब कोई दस्तावेज़ [[MIME|एमआईएमई]] संदेश या परिवहन के माध्यम से प्रेषित होता है, जो एमआईएमई कंटेंट प्रकार जैसे [[HTTP|एचटीटीपी]] प्रतिक्रिया का उपयोग करता है, तो संदेश कंटेंट-प्रकार शीर्षलेख के माध्यम से एन्कोडिंग को संकेत दे सकता है, जैसे <code>Content-Type: text/html; charset=UTF-8</code>। एन्कोडिंग घोषित करने के अन्य बाहरी साधनों की अनुमति है, लेकिन संभवतया ही कभी उपयोग किया जाता है। यदि दस्तावेज़ यूनिकोड एन्कोडिंग की तुलना का उपयोग करता है, तो एन्कोडिंग जानकारी [[बाइट ऑर्डर मार्क]] (बीओएम) के रूप में भी उपस्थित हो सकती है। अंत में, एन्कोडिंग को एचटीएमएल सिंटैक्स के माध्यम से घोषित किया जा सकता है। <code>text/html</code> क्रमांकन के लिए, जब तक पेज एएससीआईआई के विस्तार में एन्कोड किया गया हो (जैसे यूटीएफ-8, और इस प्रकार, यदि | जब कोई दस्तावेज़ [[MIME|एमआईएमई]] संदेश या परिवहन के माध्यम से प्रेषित होता है, जो एमआईएमई कंटेंट प्रकार जैसे [[HTTP|एचटीटीपी]] प्रतिक्रिया का उपयोग करता है, तो संदेश कंटेंट-प्रकार शीर्षलेख के माध्यम से एन्कोडिंग को संकेत दे सकता है, जैसे <code>Content-Type: text/html; charset=UTF-8</code>। एन्कोडिंग घोषित करने के अन्य बाहरी साधनों की अनुमति है, लेकिन संभवतया ही कभी उपयोग किया जाता है। यदि दस्तावेज़ यूनिकोड एन्कोडिंग की तुलना का उपयोग करता है, तो एन्कोडिंग जानकारी [[बाइट ऑर्डर मार्क]] (बीओएम) के रूप में भी उपस्थित हो सकती है। अंत में, एन्कोडिंग को एचटीएमएल सिंटैक्स के माध्यम से घोषित किया जा सकता है। <code>text/html</code> क्रमांकन के लिए, जब तक पेज एएससीआईआई के विस्तार में एन्कोड किया गया हो (जैसे यूटीएफ-8, और इस प्रकार, यदि पेज यूटीएफ-16 का उपयोग नहीं कर रहा है), <code>meta</code> तत्व, जैसे <code><meta http-equiv="content-type" content="text/html; charset=UTF-8"></code> या ([[HTML5|एचटीएमएल5]] से प्रारंभ) <code><meta charset="UTF-8"></code> उपयोग किया जा सकता है। एक्सएमएल के रूप में क्रमबद्ध एचटीएमएल पेजों के लिए, घोषणा विकल्प या तो एन्कोडिंग डिफ़ॉल्ट (जो एक्सएमएल दस्तावेजों के लिए यूटीएफ -8 है) पर विश्वास करना है, या एक्सएमएल एन्कोडिंग घोषणा का उपयोग करना है। एक्सएमएल के रूप में प्रस्तुत एचटीएमएल में मेटा विशेषता कोई भूमिका नहीं निभाती है। | ||
=== एन्कोडिंग डिफ़ॉल्ट === | === एन्कोडिंग डिफ़ॉल्ट === | ||
Line 46: | Line 46: | ||
=== एन्कोडिंग रुझान === | === एन्कोडिंग रुझान === | ||
[[प्रोग्रामिंग भाषा|प्रोग्रामिंग भाषाओं]] और [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] में 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> | ||
=== बाइट ऑर्डर मार्क/यूनिकोड सूँघना === | === बाइट ऑर्डर मार्क/यूनिकोड सूँघना === | ||
एचटीएमएल (कंटेंट-प्रकार | एचटीएमएल (कंटेंट-प्रकार "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/यूटीएफ- निर्धारित करने के लिए किया जा सकता है। | ||
=== एन्कोडिंग ओवरराइडिंग === | === एन्कोडिंग ओवरराइडिंग === |
Revision as of 23:19, 19 June 2023
HTML |
---|
Comparisons |
हाइपरटेक्स्ट मार्कअप भाषा (एचटीएमएल ईमेल) का उपयोग करके लिखे गए वेब पेजों में यूनिकोड यूनिवर्सल कैरेक्टर सेट के साथ बहुभाषी टेक्स्ट हो सकता है। यूनिकोड और एचटीएमएल के बीच संबंध की कुंजी "दस्तावेज़ कैरेक्टर सेट" के बीच का संबंध है, जो कैरेक्टर के सेट को परिभाषित करता है, जो एचटीएमएल दस्तावेज़ में उपस्थित हो सकता है और उन्हें संख्याएँ निर्दिष्ट करता है, और "बाहरी कैरेक्टर एन्कोडिंग", या "चारसेट", किसी दिए गए दस्तावेज़ को बाइट्स के अनुक्रम के रूप में एन्कोड करने के लिए उपयोग किया जाता है।
[rfc:1866 आरएफसी 1866] में, प्रारंभिक एचटीएमएल 2.0 मानक, दस्तावेज़ कैरेक्टर सेट को ISO-8859-1 (बाद में एचटीएमएल मानक विंडोज-1252 एन्कोडिंग के लिए डिफ़ॉल्ट) के रूप में परिभाषित किया गया था। इसे RFC 2070 द्वारा आईएसओ 10646 (जो मूल रूप से यूनिकोड के बराबर है) तक बढ़ाया गया था। यह विभिन्न भाषाओं के दस्तावेजों के बीच भिन्न नहीं होता है या विभिन्न प्लेटफार्मों पर बनाया जाता है। बाहरी कैरेक्टर एन्कोडिंग दस्तावेज़ के लेखक (या दस्तावेज़ बनाने के लिए लेखक द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर) द्वारा चुना जाता है और यह निर्धारित करता है कि दस्तावेज़ कैरेक्टर सेट से कैरेक्टर को दस्तावेज़ मानचित्र को संग्रहीत करने और संचारित करने के लिए बाइट्स का उपयोग कैसे किया जाता है। चयनित बाहरी कैरेक्टर एन्कोडिंग में उपस्थित कैरेक्टर, कैरेक्टर इकाई संदर्भों द्वारा प्रदर्शित नहीं किए जा सकते हैं।
यूनिकोड और एचटीएमएल के बीच संबंध कई कंप्यूटर व्यापारियों, दस्तावेज़ लेखकों और वर्ल्ड वाइड वेब उपयोगकर्ताओं के लिए समान रूप से कठिन विषय है। विभिन्न प्राकृतिक भाषाओं और लेखन प्रणालियों से वेब पेज में टेक्स्ट का स्पष्ट प्रतिनिधित्व कैरेक्टर एन्कोडिंग, मार्कअप भाषा सिंटैक्स, कंप्यूटर फ़ॉन्ट और वेब ब्राउज़रों द्वारा समर्थन के विभिन्न स्तरों के विवरण से जटिल है।
एचटीएमएल दस्तावेज़ कैरेक्टर
वेब पेज सामान्यतः एचटीएमएल या एक्सएचटीएमएल दस्तावेज़ होते हैं। दोनों प्रकार के दस्तावेजों में मौलिक स्तर पर, कैरेक्टर (कंप्यूटिंग) होते हैं, जो कि ग्रेफेम और ग्रेफेम जैसी इकाइयाँ हैं, जो इस बात से स्वप्रणाली हैं कि वे कंप्यूटर स्टोरेज प्रणाली और कंप्यूटर नेटवर्क में कैसे प्रकट होते हैं।
एचटीएमएल दस्तावेज़ यूनिकोड कैरेक्टर का क्रम है। अधिक विशेष रूप से, एचटीएमएल 4.0 दस्तावेज़ों को एचटीएमएल दस्तावेज़ कैरेक्टर सेट में कैरेक्टर को सम्मिलित करने की आवश्यकता होती है: कैरेक्टर प्रदर्शनों की सूची जिसमें प्रत्येक कैरेक्टर को अद्वितीय, गैर-नकारात्मक पूर्णांक कोड बिंदु निर्दिष्ट किया जाता है। यह सेट एचटीएमएल 4.0 डीटीडी में परिभाषित किया गया है, जो सिंटैक्स (कैरेक्टर के स्वीकार्य क्रम) को भी स्थापित करता है, जो वैध एचटीएमएल दस्तावेज़ का उत्पादन कर सकता है। एचटीएमएल 4.0 के लिए निर्धारित एचटीएमएल दस्तावेज़ कैरेक्टर में अधिकांश, लेकिन सभी नहीं, यूनिकोड और आईएसओ/आईईसी 10646 यूनिवर्सल कैरेक्टर सेट (यूसीएस) द्वारा संयुक्त रूप से परिभाषित कैरेक्टर सम्मिलित हैं।
एचटीएमएल दस्तावेज़ों की तरह, एक्सएचटीएमएल दस्तावेज़ यूनिकोड कैरेक्टर का क्रम है। चूंकि, एक्सएचटीएमएल दस्तावेज़, एक्सएमएल दस्तावेज़ है, जो अमूर्तता की स्पष्ट दस्तावेज़ कैरेक्टर परत नहीं होने के अतिरिक्त, अनुमेय कैरेक्टर की एक समान परिभाषा पर निर्भर करता है, जो यूनिकोड / यूसीएस कैरेक्टर परिभाषाओं के अधिकांश, लेकिन सभी को कवर नहीं करता है। एचटीएमएल और एक्सएचटीएमएल/एक्सएमएल द्वारा उपयोग किए जाने वाले सेट थोड़े अलग हैं, लेकिन इन अंतरों का औसत दस्तावेज़ लेखक पर बहुत कम प्रभाव पड़ता है।
तथापि दस्तावेज़ एचटीएमएल या एक्सएचटीएमएल हो, जब फाइल प्रणाली पर संग्रहीत किया जाता है या किसी नेटवर्क पर प्रसारित किया जाता है, तो दस्तावेज़ के कैरेक्टर को विशेष कैरेक्टर एन्कोडिंग के अनुसार बिट ऑक्टेट (बाइट्स) के अनुक्रम के रूप में एन्कोड किया जाता है। यह एन्कोडिंग या तो यूनिकोड परिवर्तन प्रारूप हो सकता है, जैसे यूटीएफ-8, जो किसी भी यूनिकोड कैरेक्टर को सीधे एन्कोड कर सकता है, या लीगेसी एन्कोडिंग, जैसे विंडोज-1252, जो नहीं कर सकता है। चूंकि, एन्कोडिंग का उपयोग करते समय भी जो सभी यूनिकोड कैरेक्टर का समर्थन नहीं करते हैं, एन्कोडेड दस्तावेज़ संख्यात्मक कैरेक्टर संदर्भों का उपयोग कर सकता है। उदाहरण के लिए, ☺
(☺) का उपयोग यूनिकोड कैरेक्टर सेट में मुस्कुराते हुए चेहरे के कैरेक्टर को इंगित करने के लिए किया जाता है।
कैरेक्टर एन्कोडिंग
संख्यात्मक कैरेक्टर संदर्भों का सहारा लिए बिना सभी यूनिकोड कैरेक्टर का समर्थन करने के लिए, वेब पेज में सभी यूनिकोड को सम्मिलित करने वाला एन्कोडिंग होना चाहिए। सबसे लोकप्रिय यूटीएफ-8 है, जहां एएससीआईआई कैरेक्टर, जैसे अंग्रेजी अक्षर, अंक, और कुछ अन्य सामान्य कैरेक्टर एएससीआईआई के विरुद्ध अपरिवर्तित संरक्षित किए जाते हैं। यह एचटीएमएल कोड (जैसे <br> और </div>) को एएससीआईआई की तुलना में अपरिवर्तित बनाता है। एएससीआईआई श्रेणी के बाहर के कैरेक्टर 2–4 बाइट्स में संग्रहित किए जाते हैं। यूटीएफ-16 का उपयोग करना भी संभव है, जहां अधिकांश कैरेक्टर को अलग-अलग एंडियननेस के साथ दो बाइट के रूप में संग्रहीत किया जाता है, जो आधुनिक ब्राउज़रों द्वारा समर्थित है लेकिन सामान्यतः कम उपयोग किया जाता है।
संख्यात्मक कैरेक्टर संदर्भ
लीगेसी एन्कोडिंग की सीमाओं के आसपास काम करने के लिए, एचटीएमएल को इस तरह डिज़ाइन किया गया है कि संख्यात्मक कैरेक्टर संदर्भ का उपयोग करके एचटीएमएल दस्तावेज़ के अंदर संपूर्ण यूनिकोड के कैरेक्टर का प्रतिनिधित्व करना संभव है: कैरेक्टर का अनुक्रम जो प्रतिनिधित्व किए जा रहे कैरेक्टर के यूनिकोड कोड बिंदु को स्पष्ट रूप से बताता है। कैरेक्टर संदर्भ फॉर्म &#
N;
, जहां N या तो यूनिकोड कोड बिंदु के लिए दशमलव संख्या है, या हेक्साडेसिमल संख्या है, जिस स्थिति में इसे x
द्वारा उपसर्ग किया जाना चाहिए। संख्यात्मक कैरेक्टर संदर्भ बनाने वाले कैरेक्टर इंटरनेट पर उपयोग के लिए स्वीकृत प्रत्येक एन्कोडिंग में सार्वभौमिक रूप से प्रतिनिधित्व योग्य हैं।
इस संदर्भ में हेक्साडेसिमल के लिए समर्थन हाल ही का है, इसलिए पुराने ब्राउज़रों को हेक्साडेसिमल संख्याओं के साथ संदर्भित कैरेक्टर को प्रदर्शित करने में समस्या हो सकती है – लेकिन उन्हें वैसे भी कोड पॉइंट 255 से ऊपर यूनिकोड कैरेक्टर को प्रदर्शित करने में समस्या होगी। पुराने ब्राउज़रों के साथ उत्तम संगतता सुनिश्चित करने के लिए, हेक्साडेसिमल कोड बिंदु को दशमलव मान में परिवर्तित करना अभी भी सामान्य अभ्यास है (उदाहरण के लिए 合
के अतिरिक्त 合
)।
नामित कैरेक्टर संस्थाएं
एचटीएमएल 4 में, कैरेक्टर के लिए 252 नामित कैरेक्टर संस्थाओं का मानक सेट है - कुछ सामान्य, कुछ अस्पष्ट - जो या तो कुछ कैरेक्टर एन्कोडिंग में नहीं पाए जाते हैं या कुछ संदर्भों में मार्कअप संवेदनशील होते हैं (उदाहरण के लिए कोण कोष्ठक और उद्धरण चिह्न)। चूंकि किसी भी यूनिकोड कैरेक्टर को उसके संख्यात्मक कोड बिंदु द्वारा संदर्भित किया जा सकता है, कुछ एचटीएमएल दस्तावेज़ लेखक इसके अतिरिक्त इन नामित संस्थाओं का उपयोग करना पसंद करते हैं, जहां संभव हो, क्योंकि वे कम गुप्त हैं और प्रारंभिक ब्राउज़रों द्वारा उत्तम समर्थित थे।
इकाई संदर्भों के उपयोग के माध्यम से कैरेक्टर संस्थाओं को एचटीएमएल दस्तावेज़ में सम्मिलित किया जा सकता है, जो '&
EntityName;
का रूप लेता है, जहां EntityName इकाई का नाम है। उदाहरण के लिए, —
, बहुत कुछ —
या —
, 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 | A या A
|
लैटिन कैपिटल लेटर A | A |
U+00DF | ß या ß
|
लैटिन स्माल लेटर शार्प S | ß |
U+00FE | þ या þ
|
लैटिन स्माल लेटर काँटा | þ |
U+0394 | Δ या Δ
|
ग्रीक कैपिटल लेटर डेल्टा | Δ |
U+017D | Ž या Ž
|
Háček के साथ लैटिन कैपिटल लेटर Z | Ž |
U+0419 | Й या Й
|
सिरिलिक कैपिटल लेटर शॉर्ट I | Й |
U+05E7 | ק या ק
|
हिब्रू लेटर क्यूफ | ק |
U+0645 | م या م
|
अरबी अक्षर मीम | م |
U+0E57 | ๗ या ๗
|
थाई संख्या 7 | ๗ |
U+1250 | ቐ या ቐ
|
गीज़ शब्दांश Qha | ቐ |
U+3042 | あ या あ
|
हीरागाना लेटर A (जापानी) | あ |
U+53F6 | 叶 या 叶
|
सीजेके एकीकृत विचारधारा-53F6 (सरलीकृत चीनी "पत्ती") | 叶 |
U+8449 | 葉 या 葉
|
सीजेके एकीकृत विचारधारा-8449 (पारंपरिक चीनी "पत्ती") | 葉 |
U+B5AB | 떫 या 떫
|
हंगुल शब्दांश टेओलप (कोरियाई "सांगटिकेउट ईओ रीउलबिउप") | 떫 |
U+16A0 | ᚠ या ᚠ
|
रूनिक अक्षर फेहू | ᚠ |
U+0D37 | ഷ या ഷ
|
मलयालम अक्षर ഷ (ṣha) | ഷ |
U+1F602 | 😂 या 😂
|
खुशी के आंसू वाला चेहरा इमोजी | 😂 |
उपरोक्त सभी कैरक्टर को प्रदर्शित करने के लिए, आपको एक या अधिक बड़े बहुभाषी फ़ॉन्ट, जैसे Code2000 स्थापित करने की आवश्यकता हो सकती है। |
मोज़िला फ़ायरफ़ॉक्स, ओपेरा (वेब ब्राउज़र), सफारी (वेब ब्राउज़र) और इंटरनेट एक्सप्लोरर (संस्करण 7 से) जैसे कुछ वेब ब्राउज़र पेज पर प्रत्येक व्यक्तिगत कैरेक्टर को प्रदर्शित करने के लिए बुद्धिमानी से फ़ॉन्ट चुनकर बहुभाषी वेब पेज प्रदर्शित करने में सक्षम हैं। वे यूनिकोड ब्लॉक के किसी भी मिश्रण को सही तरह से प्रदर्शित करेंगे, जब तक कि ऑपरेटिंग प्रणाली में टाइपफेस यूनिकोड फोंट की उपयुक्त सूची उपस्थित हो।
पुराने ब्राउज़र, जैसे नेटस्केप नेविगेटर 4.77 और इंटरनेट एक्सप्लोरर 6, केवल पेज के कैरेक्टर एन्कोडिंग से जुड़े वर्तमान फ़ॉन्ट द्वारा समर्थित टेक्स्ट प्रदर्शित कर सकते हैं, और संख्यात्मक कैरेक्टर संदर्भों को वर्तमान कैरेक्टर एन्कोडिंग के अन्दर कोड मानों के संदर्भ के रूप में गलत समझ सकते हैं, बल्कि यूनिकोड कोड बिंदुओं के संदर्भ में गलत समझ सकते हैं। जब आप ऐसे ब्राउज़र का उपयोग कर रहे हैं, तो यह संभावना नहीं है कि आपके कंप्यूटर में वे सभी फ़ॉन्ट हों, या यह कि ब्राउज़र एक ही पेज पर सभी उपलब्ध फ़ॉन्ट का उपयोग कर सकता है। परिणामस्वरूप, ब्राउज़र ऊपर दिए गए उदाहरणों में टेक्स्ट को सही तरह से प्रदर्शित नहीं करेगा, चूंकि यह उनमें से एक सबसेट प्रदर्शित कर सकता है। क्योंकि वे मानक के अनुसार एन्कोड किए गए हैं, चूंकि, वे किसी भी प्रणाली पर सही तरह से प्रदर्शित होंगे जो आज्ञाकारी है और जिसमें अक्षर उपलब्ध हैं। इसके अतिरिक्त, नामित इकाई संदर्भों में उपयोग के लिए दिए गए नाम वाले कैरेक्टर दूसरों की तुलना में अधिक सामान्य रूप से उपलब्ध होने की संभावना है।
मूल बहुभाषी तल के बाहर कैरेक्टर प्रदर्शित करने के लिए, जैसे कि गोथिक अक्षर फेहु, जो उपरोक्त तालिका में रूनिक अक्षर फेहु का एक प्रकार है, कुछ प्रणालियों (जैसे विंडोज 2000) को उनकी सेटिंग्स के मैनुअल समायोजन की आवश्यकता होती है।
उपयोग की आवृत्ति
गूगल के वेब इंडेक्स के आंतरिक डेटा के अनुसार, दिसंबर 2007 में यूटीएफ-8 यूनिकोड एन्कोडिंग वेब पेजों पर सबसे अधिक उपयोग किया जाने वाला एन्कोडिंग बन गया, एएससीआईआई (यूएस) और 8859-1/1252 (पश्चिमी यूरोपीय) दोनों को पीछे छोड़ दिया।[4]
यह भी देखें
- मेटा: सहायता: विशेष कैरेक्टर
- एचटीएमएल में कैरेक्टर एनकोडिंग
- कैरेक्टरसेट का पता लगाना
- wikibooks: यूनिकोड/कैरेक्टर संदर्भ|यूनिकोड कैरेक्टर संदर्भ (wikibooks)
संदर्भ
- ↑ 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]
- ↑ "12897 – In some parsers, UTF-8 BOM trumps the HTTP charset attribute (Encoding sniffing algorithm)". www.w3.org. Retrieved 2023-03-09.
- ↑ "66189 – XML parser doesn't emit FATAL ERROR for all, detectable encoding errors". bugs.webkit.org. Retrieved 2023-03-09.
- ↑ Mark Davis: Moving to Unicode 5.1 Official Google blog, 5 May 2008
बाहरी संबंध
- Unicode in XML and other Markup Languages - a W3C & Unicode Consortium joint publication that describes issues and provides guidelines relating to Unicode in markup languages
- Latin-1, "Special", and Mathematical, Greek and Symbolic named character entity definitions for एचटीएमएल 4.01
- UnicodeMap.org - Browse Unicode characters, ranges, and other information
- SIL's freeware fonts, editors and documentation
- Alan Wood’s Unicode Resources - Unicode fonts and information.
- http://www.phon.ucl.ac.uk/home/wells/ipa-unicode.htm The International Phonetic Alphabet in Unicode
- http://www.alanwood.net/unicode/cjk_compatibility_ideographs.एचटीएमएल CJK Compatibility Ideographs
- http://www.unicode.org/charts/ Unicode character charts; hexadecimal numbers only; PDF files showing all characters independent of browser capabilities
- Table of Unicode characters from 1 to 65535 Archived 2007-11-03 at the Wayback Machine - shows how they look in one's browser
- Web tool that converts "special" characters (such as Chinese characters) to Unicode numeric character references
- Multi-lingual web pages and Unicode - how to fix display problems
- w3.org via web.archive.org - Original एचटीएमएल5 Citation Reference saved via Wayback Machine