यूनिकोड और एचटीएमएल: Difference between revisions
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
{{SpecialChars}} | {{SpecialChars}} | ||
{{Html series}} | {{Html series}} | ||
हाइपरटेक्स्ट मार्कअप भाषा ([[एचटीएमएल ईमेल]]) का उपयोग करके लिखे गए वेब पेजों में यूनिकोड यूनिवर्सल कैरेक्टर सेट के साथ बहुभाषी टेक्स्ट हो सकता है। यूनिकोड और एचटीएमएल के बीच संबंध की कुंजी दस्तावेज़ | हाइपरटेक्स्ट मार्कअप भाषा ([[एचटीएमएल ईमेल]]) का उपयोग करके लिखे गए वेब पेजों में यूनिकोड यूनिवर्सल कैरेक्टर सेट के साथ बहुभाषी टेक्स्ट हो सकता है। यूनिकोड और एचटीएमएल के बीच संबंध की कुंजी "दस्तावेज़ कैरेक्टर सेट" के बीच का संबंध है, जो कैरेक्टर के सेट को परिभाषित करता है, जो एचटीएमएल दस्तावेज़ में उपस्थित हो सकता है और उन्हें संख्याएँ निर्दिष्ट करता है, और "बाहरी कैरेक्टर एन्कोडिंग", या "चारसेट", किसी दिए गए दस्तावेज़ को बाइट्स के अनुक्रम के रूप में एन्कोड करने के लिए उपयोग किया जाता है। | ||
[rfc:1866 आरएफसी 1866] में, प्रारंभिक एचटीएमएल 2.0 मानक, दस्तावेज़ कैरेक्टर सेट को ISO-8859-1 (बाद में एचटीएमएल मानक [[Windows-1252|विंडोज-1252]] एन्कोडिंग के लिए डिफ़ॉल्ट) के रूप में परिभाषित किया गया था। इसे {{IETF RFC|2070}} द्वारा [[आईएसओ 10646]] (जो मूल रूप से यूनिकोड के बराबर है) तक बढ़ाया गया था। यह विभिन्न भाषाओं के दस्तावेजों के बीच भिन्न नहीं होता है या विभिन्न प्लेटफार्मों पर बनाया जाता है। बाहरी [[अक्षरों को सांकेतिक अक्षरों में बदलना|कैरेक्टर एन्कोडिंग]] दस्तावेज़ के लेखक (या दस्तावेज़ बनाने के लिए लेखक द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर) द्वारा चुना जाता है और यह निर्धारित करता है कि दस्तावेज़ कैरेक्टर सेट से कैरेक्टर को दस्तावेज़ मानचित्र को संग्रहीत करने और संचारित करने के लिए बाइट्स का उपयोग कैसे किया जाता है। चयनित बाहरी कैरेक्टर एन्कोडिंग में उपस्थित कैरेक्टर, कैरेक्टर इकाई संदर्भों द्वारा प्रदर्शित नहीं किए जा सकते हैं। | |||
[[यूनिकोड]] और एचटीएमएल के बीच संबंध कई कंप्यूटर | [[यूनिकोड]] और एचटीएमएल के बीच संबंध कई कंप्यूटर व्यापारियों, दस्तावेज़ लेखकों और [[वर्ल्ड वाइड वेब]] उपयोगकर्ताओं के लिए समान रूप से कठिन विषय है। विभिन्न [[प्राकृतिक भाषा|प्राकृतिक भाषाओं]] और लेखन प्रणालियों से [[ वेब पृष्ठ | वेब पेज]] में पाठ का स्पष्ट प्रतिनिधित्व कैरेक्टर एन्कोडिंग, मार्कअप भाषा सिंटैक्स, [[कंप्यूटर फ़ॉन्ट]] और [[वेब ब्राउज़र|वेब ब्राउज़रों]] द्वारा समर्थन के विभिन्न स्तरों के विवरण से जटिल है। | ||
== एचटीएमएल दस्तावेज़ | == एचटीएमएल दस्तावेज़ कैरेक्टर == | ||
वेब पेज | वेब पेज सामान्यतः एचटीएमएल या [[XHTML|एक्सएचटीएमएल]] दस्तावेज़ होते हैं। दोनों प्रकार के दस्तावेजों में मौलिक स्तर पर, [[चरित्र (कंप्यूटिंग)|कैरेक्टर (कंप्यूटिंग)]] होते हैं, जो कि [[ग्रफीम|ग्रेफेम]] और ग्रेफेम जैसी इकाइयाँ हैं, जो इस बात से स्वतंत्र हैं कि वे [[ कंप्यूटर भंडारण | कंप्यूटर स्टोरेज]] प्रणाली और [[ संगणक संजाल | कंप्यूटर नेटवर्क]] में कैसे प्रकट होते हैं। | ||
एचटीएमएल दस्तावेज़ यूनिकोड | एचटीएमएल दस्तावेज़ यूनिकोड कैरेक्टर का क्रम है। अधिक विशेष रूप से, एचटीएमएल 4.0 दस्तावेज़ों को एचटीएमएल दस्तावेज़ कैरेक्टर सेट में कैरेक्टर को सम्मिलित करने की आवश्यकता होती है: कैरेक्टर प्रदर्शनों की सूची जिसमें प्रत्येक कैरेक्टर को अद्वितीय, गैर-नकारात्मक पूर्णांक कोड बिंदु निर्दिष्ट किया जाता है। यह सेट एचटीएमएल 4.0 [[दस्तावेज़ प्रकार परिभाषा|DTD]] में परिभाषित किया गया है, जो सिंटैक्स (कैरेक्टर के स्वीकार्य क्रम) को भी स्थापित करता है, जो वैध एचटीएमएल दस्तावेज़ का उत्पादन कर सकता है। एचटीएमएल 4.0 के लिए निर्धारित एचटीएमएल दस्तावेज़ कैरेक्टर में अधिकांश, लेकिन सभी नहीं, यूनिकोड और ISO/IEC 10646 [[यूनिवर्सल कैरेक्टर सेट]] (यूसीएस) द्वारा संयुक्त रूप से परिभाषित कैरेक्टर सम्मिलित हैं। | ||
एचटीएमएल दस्तावेज़ों की तरह, | एचटीएमएल दस्तावेज़ों की तरह, एक्सएचटीएमएल दस्तावेज़ यूनिकोड कैरेक्टर का क्रम है। हालांकि, एक्स[[एचटीएमएल]] दस्तावेज़, [[एक्सएमएल]] दस्तावेज़ है, जो अमूर्तता की एक स्पष्ट दस्तावेज़ कैरेक्टर परत नहीं होने के बावजूद, अनुमेय कैरेक्टर की एक समान परिभाषा पर निर्भर करता है जो यूनिकोड / यूसीएस कैरेक्टर परिभाषाओं के अधिकांश, लेकिन सभी को कवर नहीं करता है। एचटीएमएल और एक्सएचटीएमएल/एक्सएमएल द्वारा उपयोग किए जाने वाले सेट थोड़े अलग हैं, लेकिन इन अंतरों का औसत दस्तावेज़ लेखक पर बहुत कम प्रभाव पड़ता है। | ||
तथापि दस्तावेज़ एचटीएमएल या एक्सएचटीएमएल हो, जब [[फाइल सिस्टम|फाइल प्रणाली]] पर संग्रहीत किया जाता है या किसी नेटवर्क पर प्रसारित किया जाता है, तो दस्तावेज़ के कैरेक्टर को विशेष कैरेक्टर एन्कोडिंग के अनुसार [[ अंश ]] [[ऑक्टेट (कंप्यूटिंग)]] एस ([[बाइट]]्स) के अनुक्रम के रूप में एन्कोड किया जाता है। यह एन्कोडिंग या तो [[यूनिकोड परिवर्तन प्रारूप]] हो सकता है, जैसे [[UTF-8|यूटीएफ-8]], जो किसी भी यूनिकोड कैरेक्टर को सीधे एन्कोड कर सकता है, या लीगेसी एन्कोडिंग, जैसे विंडोज-1252, जो नहीं कर सकता। हालांकि, एन्कोडिंग का उपयोग करते समय भी जो सभी यूनिकोड कैरेक्टर का समर्थन नहीं करते हैं, एन्कोडेड दस्तावेज़ संख्यात्मक कैरेक्टर संदर्भों का उपयोग कर सकता है। उदाहरण के लिए, <code>&#x263A;</code> (☺) का उपयोग यूनिकोड कैरेक्टर सेट में मुस्कुराते हुए चेहरे के कैरेक्टर को इंगित करने के लिए किया जाता है। | |||
=== | === कैरेक्टर एन्कोडिंग === | ||
संख्यात्मक | संख्यात्मक कैरेक्टर संदर्भों का सहारा लिए बिना सभी यूनिकोड कैरेक्टर का समर्थन करने के लिए, वेब पेज में सभी यूनिकोड को सम्मिलित करने वाला एन्कोडिंग होना चाहिए। सबसे लोकप्रिय यूटीएफ-8 है, जहां [[ASCII|एएससीआईआई]] कैरेक्टर, जैसे अंग्रेजी अक्षर, अंक, और कुछ अन्य सामान्य कैरेक्टर एएससीआईआई के विरुद्ध अपरिवर्तित संरक्षित किए जाते हैं। यह एचटीएमएल कोड (जैसे <br> और ) को एएससीआईआई की तुलना में अपरिवर्तित बनाता है। एएससीआईआई श्रेणी के बाहर के कैरेक्टर 2–4 बाइट्स में संग्रहित किए जाते हैं। [[UTF-16|यूटीएफ-16]] का उपयोग करना भी संभव है जहां अधिकांश कैरेक्टर को अलग-अलग [[endianness|एंडीनेस]] के साथ दो बाइट के रूप में संग्रहीत किया जाता है, जो आधुनिक ब्राउज़रों द्वारा समर्थित है लेकिन सामान्यतः कम उपयोग किया जाता है। | ||
=== संख्यात्मक | === संख्यात्मक कैरेक्टर संदर्भ === | ||
{{Main| | {{Main|सांख्यिक वर्ण संदर्भ}} | ||
लीगेसी एन्कोडिंग की सीमाओं के आसपास काम करने के लिए, एचटीएमएल को इस तरह डिज़ाइन किया गया है कि संख्यात्मक | लीगेसी एन्कोडिंग की सीमाओं के आसपास काम करने के लिए, एचटीएमएल को इस तरह डिज़ाइन किया गया है कि संख्यात्मक कैरेक्टर संदर्भ का उपयोग करके एचटीएमएल दस्तावेज़ के अंदर संपूर्ण यूनिकोड के कैरेक्टर का प्रतिनिधित्व करना संभव है: कैरेक्टर का क्रम जो यूनिकोड कोड बिंदु को स्पष्ट रूप से बताता है जिस पात्र का प्रतिनिधित्व किया जा रहा है। कैरेक्टर संदर्भ रूप लेता है<code>&#</code><var>एन</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 डैश कैरेक्टर — तथापि प्रयुक्त कैरेक्टर एन्कोडिंग में वह कैरेक्टर न हो। | ||
पूरी सूची के लिए, देखें: | पूरी सूची के लिए, देखें: एक्सएमएल और एचटीएमएल कैरेक्टर इकाई संदर्भों की सूची। | ||
== | == कैरेक्टर एन्कोडिंग निर्धारण == | ||
एचटीएमएल को सही ढंग से संसाधित करने के लिए, वेब ब्राउज़र को यह पता लगाना चाहिए कि कौन से यूनिकोड | एचटीएमएल को सही ढंग से संसाधित करने के लिए, वेब ब्राउज़र को यह पता लगाना चाहिए कि कौन से यूनिकोड कैरेक्टर एचटीएमएल दस्तावेज़ के एन्कोडेड रूप से दर्शाए गए हैं। ऐसा करने के लिए, वेब ब्राउज़र को पता होना चाहिए कि किस एन्कोडिंग का उपयोग किया गया था। | ||
=== एन्कोडिंग जानकारी === | === एन्कोडिंग जानकारी === | ||
जब कोई दस्तावेज़ [[MIME]] संदेश या परिवहन के माध्यम से प्रेषित होता है जो | जब कोई दस्तावेज़ [[MIME|एमआईएमई]] संदेश या परिवहन के माध्यम से प्रेषित होता है जो एमआईएमई सामग्री प्रकार जैसे [[HTTP|एचटीटीपी]] प्रतिक्रिया का उपयोग करता है, तो संदेश सामग्री-प्रकार शीर्षलेख के माध्यम से एन्कोडिंग को संकेत दे सकता है, जैसे <code>Content-Type: text/html; charset=UTF-8</code>. एन्कोडिंग घोषित करने के अन्य बाहरी साधनों की अनुमति है लेकिन संभवतया ही कभी उपयोग किया जाता है। यदि दस्तावेज़ यूनिकोड एन्कोडिंग की तुलना का उपयोग करता है, तो एन्कोडिंग जानकारी [[बाइट ऑर्डर मार्क]] (बीओएम) के रूप में भी उपस्थित हो सकती है। अंत में, एन्कोडिंग को एचटीएमएल सिंटैक्स के माध्यम से घोषित किया जा सकता है। के लिए <code>text/html</code> क्रमांकन तब तक, जब तक पेजएएससीआईआई के विस्तार में एन्कोड किया गया हो (जैसे यूटीएफ-8, और इस प्रकार, यदि पेजयूटीएफ-16 का उपयोग नहीं कर रहा है), a <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 है) पर भरोसा करना है, या एक्सएमएल एन्कोडिंग घोषणा का उपयोग करना है। एक्सएमएल के रूप में प्रस्तुत एचटीएमएल में मेटा विशेषता कोई भूमिका नहीं निभाती है। | ||
=== एन्कोडिंग डिफ़ॉल्ट === | === एन्कोडिंग डिफ़ॉल्ट === | ||
एन्कोडिंग डिफ़ॉल्ट तब | एन्कोडिंग डिफ़ॉल्ट तब प्रयुक्त होता है जब कोई बाहरी या आंतरिक एन्कोडिंग घोषणा नहीं होती है और कोई बाइट ऑर्डर चिह्न भी नहीं होता है। जबकि एक्सएमएल के रूप में प्रस्तुत किए गए एचटीएमएल पेजों के लिए एन्कोडिंग डिफ़ॉल्ट यूटीएफ-8 होना आवश्यक है, नियमित वेब पेज के लिए एन्कोडिंग डिफ़ॉल्ट (अर्थात: एचटीएमएल पेजों के लिए क्रमबद्ध रूप से <code>text/html</code>) ब्राउज़र के स्थानीयकरण के आधार पर भिन्न होता है। मुख्य रूप से पश्चिमी यूरोपीय भाषाओं के लिए स्थापित प्रणाली के लिए, यह सामान्यतः ISO 8859-1#विंडोज-1252|विंडोज-1252 होगा। सिरिलिक कैरेक्टरमाला स्थानों के लिए, डिफ़ॉल्ट सामान्यतः [[Windows-1251|विंडोज-1251]] है। किसी ऐसे स्थान के ब्राउज़र के लिए जहां लीगेसी मल्टी-बाइट कैरेक्टर एनकोडिंग प्रचलित हैं, ऑटो-डिटेक्शन के कुछ रूप प्रयुक्त होने की संभावना है। | ||
=== एन्कोडिंग रुझान === | === एन्कोडिंग रुझान === | ||
[[प्रोग्रामिंग भाषा]]ओं और [[ऑपरेटिंग सिस्टम]] में 8-बिट पाठ प्रस्तुतियों की विरासत और एन्कोडिंग की बारीकियों को समझने की आवश्यकता के साथ बोझिल उपयोगकर्ताओं से बचने की इच्छा के कारण, एचटीएमएल लेखकों द्वारा उपयोग किए जाने वाले कई टेक्स्ट संपादक एन्कोडिंग के विकल्प की पेशकश करने में असमर्थ या अनिच्छुक हैं। फ़ाइलों को डिस्क में सहेजते समय और अक्सर बहुत सीमित सीमा से परे | [[प्रोग्रामिंग भाषा]]ओं और [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] में 8-बिट पाठ प्रस्तुतियों की विरासत और एन्कोडिंग की बारीकियों को समझने की आवश्यकता के साथ बोझिल उपयोगकर्ताओं से बचने की इच्छा के कारण, एचटीएमएल लेखकों द्वारा उपयोग किए जाने वाले कई टेक्स्ट संपादक एन्कोडिंग के विकल्प की पेशकश करने में असमर्थ या अनिच्छुक हैं। फ़ाइलों को डिस्क में सहेजते समय और अक्सर बहुत सीमित सीमा से परे कैरेक्टर के इनपुट की अनुमति भी नहीं देते हैं। परिणामस्वरूप, कई एचटीएमएल लेखक एन्कोडिंग मुद्दों से अनभिज्ञ हैं और उन्हें इस बात का कोई अंदाजा नहीं है कि उनके दस्तावेज़ वास्तव में किस एन्कोडिंग का उपयोग करते हैं। गलतफहमी, जैसे विश्वास है कि एन्कोडिंग घोषणा वास्तविक एन्कोडिंग में परिवर्तन को प्रभावित करती है (जबकि यह वास्तव में केवल लेबल है जो गलत हो सकता है), इस संपादक के रवैये का भी कारण है। उसी दिशा में योगदान देने वाला अन्य कारक, यूटीएफ-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 के लिए, BOM वैकल्पिक है, जबकि यूटीएफ-16 और यूटीएफ-32 एनकोडिंग के लिए यह अनिवार्य है। (ध्यान दें: BOM के बिना यूटीएफ-16 और यूटीएफ-32 को औपचारिक रूप से अलग-अलग नामों से जाना जाता है, वे अलग-अलग एनकोडिंग हैं, और इस प्रकार कुछ प्रकार की एन्कोडिंग घोषणा की आवश्यकता होती है - [[UTF-16BE|यूटीएफ-16BE]], [[UTF-16LE|यूटीएफ-16LE]], [[UTF-32LE|यूटीएफ-32LE]] और [[UTF-32BE|यूटीएफ-32BE]] देखें .) BOM कैरेक्टर (U+FEFF) के उपयोग का मतलब है कि एन्कोडिंग स्वचालित रूप से किसी भी प्रोसेसिंग एप्लिकेशन के लिए खुद को घोषित करती है। प्रसंस्करण अनुप्रयोगों को क्रमशः यूटीएफ-32, यूटीएफ-16 या यूटीएफ-8 एन्कोडेड के रूप में दस्तावेज़ की पहचान करने के लिए बाइट स्ट्रीम में प्रारंभिक 0x0000FEFF, 0xFEFF या 0xEFBBBF की तलाश करने की आवश्यकता है। इन एन्कोडिंग के लिए किसी अतिरिक्त मेटाडेटा तंत्र की आवश्यकता नहीं है क्योंकि बाइट-ऑर्डर चिह्न में प्रसंस्करण अनुप्रयोगों के लिए आवश्यक सभी जानकारी सम्मिलित है। ज्यादातर परिस्थितियों में, बाइट-ऑर्डर मार्क कैरेक्टर को अन्य कैरेक्टर्स से अलग एडिटिंग एप्लिकेशन द्वारा हैंडल किया जाता है, इसलिए लेखक द्वारा गलत एन्कोडिंग को इंगित करने के लिए बाइट ऑर्डर मार्क को हटाने या अन्यथा बदलने का बहुत कम जोखिम होता है (जैसा कि एन्कोडिंग घोषित होने पर हो सकता है) अंग्रेजी/लैटिन लिपि में)। यदि दस्तावेज़ में बाइट-ऑर्डर चिह्न का अभाव है, तो तथ्य यह है कि एचटीएमएल दस्तावेज़ में पहला गैर-रिक्त मुद्रण योग्य कैरेक्टर <(U+003C) माना जाता है, जिसका उपयोग यूटीएफ-8/यूटीएफ-16/यूटीएफ- निर्धारित करने के लिए किया जा सकता है। 32 एन्कोडिंग। | ||
=== एन्कोडिंग ओवरराइडिंग === | === एन्कोडिंग ओवरराइडिंग === | ||
कई एचटीएमएल दस्तावेज़ों को गलत एन्कोडिंग जानकारी, या कोई एन्कोडिंग जानकारी बिल्कुल नहीं दी जाती है। ऐसे मामलों में एन्कोडिंग निर्धारित करने के लिए, कई ब्राउज़र उपयोगकर्ता को किसी सूची से मैन्युअल रूप से एन्कोडिंग नाम चुनने की अनुमति देते हैं। वे एन्कोडिंग ऑटो-डिटेक्शन एल्गोरिदम भी नियोजित कर सकते हैं जो कंसर्ट में या के साथ काम करता है{{snd}} बीओएम के मामले में और एचटीएमएल के मामले में एक्सएमएल के रूप में कार्य करता है{{snd}} मैनुअल ओवरराइड के खिलाफ। | कई एचटीएमएल दस्तावेज़ों को गलत एन्कोडिंग जानकारी, या कोई एन्कोडिंग जानकारी बिल्कुल नहीं दी जाती है। ऐसे मामलों में एन्कोडिंग निर्धारित करने के लिए, कई ब्राउज़र उपयोगकर्ता को किसी सूची से मैन्युअल रूप से एन्कोडिंग नाम चुनने की अनुमति देते हैं। वे एन्कोडिंग ऑटो-डिटेक्शन एल्गोरिदम भी नियोजित कर सकते हैं जो कंसर्ट में या के साथ काम करता है{{snd}} बीओएम के मामले में और एचटीएमएल के मामले में एक्सएमएल के रूप में कार्य करता है{{snd}} मैनुअल ओवरराइड के खिलाफ। | ||
एचटीएमएल दस्तावेज़ों के लिए जो हैं <code>text/एचटीएमएल</code> क्रमबद्ध, मैनुअल ओवरराइड सभी दस्तावेजों पर | एचटीएमएल दस्तावेज़ों के लिए जो हैं <code>text/एचटीएमएल</code> क्रमबद्ध, मैनुअल ओवरराइड सभी दस्तावेजों पर प्रयुक्त हो सकता है, या केवल उन पर प्रयुक्त हो सकता है जिनके लिए घोषणाओं और/या बाइट पैटर्न को देखकर एन्कोडिंग का पता नहीं लगाया जा सकता है। यह तथ्य कि मैनुअल ओवरराइड उपस्थित है और व्यापक रूप से उपयोग किया जाता है, वेब पर स्पष्ट एन्कोडिंग घोषणाओं को अपनाने में बाधा डालता है; इसलिए समस्या के बने रहने की संभावना है। लेकिन ध्यान दें कि इंटरनेट एक्सप्लोरर, क्रोम और सफारी{{snd}} एक्सएमएल और दोनों के लिए <code>text/html</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> | ||
पसंदीदा | |||
पसंदीदा एक्सएमएल लेबल के साथ क्रमबद्ध एचटीएमएल दस्तावेज़ों के लिए{{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 155: | Line 156: | ||
!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 | To display all of the characters above, you may need to install one or more large multilingual fonts, like [[Code2000]]. | ||
|} | |} | ||
[[मोज़िला फ़ायरफ़ॉक्स]], [[ओपेरा (वेब ब्राउज़र)]], [[सफारी (वेब ब्राउज़र)]] और [[इंटरनेट एक्सप्लोरर]] (संस्करण 7 से) जैसे कुछ वेब ब्राउज़र | [[मोज़िला फ़ायरफ़ॉक्स]], [[ओपेरा (वेब ब्राउज़र)]], [[सफारी (वेब ब्राउज़र)]] और [[इंटरनेट एक्सप्लोरर]] (संस्करण 7 से) जैसे कुछ वेब ब्राउज़र पेजपर प्रत्येक व्यक्तिगत कैरेक्टर को प्रदर्शित करने के लिए बुद्धिमानी से फ़ॉन्ट चुनकर बहुभाषी वेब पेज प्रदर्शित करने में सक्षम हैं। . वे [[यूनिकोड ब्लॉक]] के किसी भी मिश्रण को सही ढंग से प्रदर्शित करेंगे, जब तक कि ऑपरेटिंग प्रणाली में टाइपफेस # यूनिकोड फोंट की उपयुक्त सूची उपस्थित हो। | ||
पुराने ब्राउज़र, जैसे [[नेटस्केप नेविगेटर]] 4.77 और [[इंटरनेट एक्सप्लोरर 6]], केवल | पुराने ब्राउज़र, जैसे [[नेटस्केप नेविगेटर]] 4.77 और [[इंटरनेट एक्सप्लोरर 6]], केवल पेजके कैरेक्टर एन्कोडिंग से जुड़े वर्तमान फ़ॉन्ट द्वारा समर्थित पाठ प्रदर्शित कर सकते हैं, और संख्यात्मक कैरेक्टर संदर्भों को वर्तमान कैरेक्टर एन्कोडिंग के भीतर कोड मानों के संदर्भ के रूप में गलत समझ सकते हैं, बल्कि यूनिकोड कोड बिंदुओं के संदर्भ में। जब आप ऐसे ब्राउज़र का उपयोग कर रहे हैं, तो यह संभावना नहीं है कि आपके कंप्यूटर में वे सभी फ़ॉन्ट हों, या यह कि ब्राउज़र एक ही पेजपर सभी उपलब्ध फ़ॉन्ट का उपयोग कर सकता है। परिणामस्वरूप, ब्राउज़र ऊपर दिए गए उदाहरणों में पाठ को सही ढंग से प्रदर्शित नहीं करेगा, हालांकि यह उनमें से एक सबसेट प्रदर्शित कर सकता है। क्योंकि वे मानक के अनुसार एन्कोड किए गए हैं, हालांकि, वे किसी भी प्रणाली पर सही ढंग से प्रदर्शित होंगे जो आज्ञाकारी है और जिसमें अक्षर उपलब्ध हैं। इसके अतिरिक्त, नामित इकाई संदर्भों में उपयोग के लिए दिए गए नाम वाले कैरेक्टर दूसरों की तुलना में अधिक सामान्य रूप से उपलब्ध होने की संभावना है। | ||
मूल बहुभाषी तल के बाहर | मूल बहुभाषी तल के बाहर कैरेक्टर प्रदर्शित करने के लिए, जैसे कि गोथिक अक्षर फेहु, जो उपरोक्त तालिका में रूनिक अक्षर फेहु का एक प्रकार है, कुछ प्रणालियों (जैसे विंडोज 2000) को उनकी सेटिंग्स के मैनुअल समायोजन की आवश्यकता होती है। | ||
== उपयोग की आवृत्ति == | == उपयोग की आवृत्ति == | ||
[[Google]] के वेब इंडेक्स के आंतरिक डेटा के अनुसार, दिसंबर 2007 में | [[Google]] के वेब इंडेक्स के आंतरिक डेटा के अनुसार, दिसंबर 2007 में यूटीएफ-8 यूनिकोड एन्कोडिंग वेब पेजों पर सबसे अधिक उपयोग किया जाने वाला एन्कोडिंग बन गया, एएससीआईआई (US) और ISO/IEC 8859-1|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) | ||
==संदर्भ== | ==संदर्भ== |
Revision as of 22:11, 19 June 2023
HTML |
---|
Comparisons |
हाइपरटेक्स्ट मार्कअप भाषा (एचटीएमएल ईमेल) का उपयोग करके लिखे गए वेब पेजों में यूनिकोड यूनिवर्सल कैरेक्टर सेट के साथ बहुभाषी टेक्स्ट हो सकता है। यूनिकोड और एचटीएमएल के बीच संबंध की कुंजी "दस्तावेज़ कैरेक्टर सेट" के बीच का संबंध है, जो कैरेक्टर के सेट को परिभाषित करता है, जो एचटीएमएल दस्तावेज़ में उपस्थित हो सकता है और उन्हें संख्याएँ निर्दिष्ट करता है, और "बाहरी कैरेक्टर एन्कोडिंग", या "चारसेट", किसी दिए गए दस्तावेज़ को बाइट्स के अनुक्रम के रूप में एन्कोड करने के लिए उपयोग किया जाता है।
[rfc:1866 आरएफसी 1866] में, प्रारंभिक एचटीएमएल 2.0 मानक, दस्तावेज़ कैरेक्टर सेट को ISO-8859-1 (बाद में एचटीएमएल मानक विंडोज-1252 एन्कोडिंग के लिए डिफ़ॉल्ट) के रूप में परिभाषित किया गया था। इसे RFC 2070 द्वारा आईएसओ 10646 (जो मूल रूप से यूनिकोड के बराबर है) तक बढ़ाया गया था। यह विभिन्न भाषाओं के दस्तावेजों के बीच भिन्न नहीं होता है या विभिन्न प्लेटफार्मों पर बनाया जाता है। बाहरी कैरेक्टर एन्कोडिंग दस्तावेज़ के लेखक (या दस्तावेज़ बनाने के लिए लेखक द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर) द्वारा चुना जाता है और यह निर्धारित करता है कि दस्तावेज़ कैरेक्टर सेट से कैरेक्टर को दस्तावेज़ मानचित्र को संग्रहीत करने और संचारित करने के लिए बाइट्स का उपयोग कैसे किया जाता है। चयनित बाहरी कैरेक्टर एन्कोडिंग में उपस्थित कैरेक्टर, कैरेक्टर इकाई संदर्भों द्वारा प्रदर्शित नहीं किए जा सकते हैं।
यूनिकोड और एचटीएमएल के बीच संबंध कई कंप्यूटर व्यापारियों, दस्तावेज़ लेखकों और वर्ल्ड वाइड वेब उपयोगकर्ताओं के लिए समान रूप से कठिन विषय है। विभिन्न प्राकृतिक भाषाओं और लेखन प्रणालियों से वेब पेज में पाठ का स्पष्ट प्रतिनिधित्व कैरेक्टर एन्कोडिंग, मार्कअप भाषा सिंटैक्स, कंप्यूटर फ़ॉन्ट और वेब ब्राउज़रों द्वारा समर्थन के विभिन्न स्तरों के विवरण से जटिल है।
एचटीएमएल दस्तावेज़ कैरेक्टर
वेब पेज सामान्यतः एचटीएमएल या एक्सएचटीएमएल दस्तावेज़ होते हैं। दोनों प्रकार के दस्तावेजों में मौलिक स्तर पर, कैरेक्टर (कंप्यूटिंग) होते हैं, जो कि ग्रेफेम और ग्रेफेम जैसी इकाइयाँ हैं, जो इस बात से स्वतंत्र हैं कि वे कंप्यूटर स्टोरेज प्रणाली और कंप्यूटर नेटवर्क में कैसे प्रकट होते हैं।
एचटीएमएल दस्तावेज़ यूनिकोड कैरेक्टर का क्रम है। अधिक विशेष रूप से, एचटीएमएल 4.0 दस्तावेज़ों को एचटीएमएल दस्तावेज़ कैरेक्टर सेट में कैरेक्टर को सम्मिलित करने की आवश्यकता होती है: कैरेक्टर प्रदर्शनों की सूची जिसमें प्रत्येक कैरेक्टर को अद्वितीय, गैर-नकारात्मक पूर्णांक कोड बिंदु निर्दिष्ट किया जाता है। यह सेट एचटीएमएल 4.0 DTD में परिभाषित किया गया है, जो सिंटैक्स (कैरेक्टर के स्वीकार्य क्रम) को भी स्थापित करता है, जो वैध एचटीएमएल दस्तावेज़ का उत्पादन कर सकता है। एचटीएमएल 4.0 के लिए निर्धारित एचटीएमएल दस्तावेज़ कैरेक्टर में अधिकांश, लेकिन सभी नहीं, यूनिकोड और ISO/IEC 10646 यूनिवर्सल कैरेक्टर सेट (यूसीएस) द्वारा संयुक्त रूप से परिभाषित कैरेक्टर सम्मिलित हैं।
एचटीएमएल दस्तावेज़ों की तरह, एक्सएचटीएमएल दस्तावेज़ यूनिकोड कैरेक्टर का क्रम है। हालांकि, एक्सएचटीएमएल दस्तावेज़, एक्सएमएल दस्तावेज़ है, जो अमूर्तता की एक स्पष्ट दस्तावेज़ कैरेक्टर परत नहीं होने के बावजूद, अनुमेय कैरेक्टर की एक समान परिभाषा पर निर्भर करता है जो यूनिकोड / यूसीएस कैरेक्टर परिभाषाओं के अधिकांश, लेकिन सभी को कवर नहीं करता है। एचटीएमएल और एक्सएचटीएमएल/एक्सएमएल द्वारा उपयोग किए जाने वाले सेट थोड़े अलग हैं, लेकिन इन अंतरों का औसत दस्तावेज़ लेखक पर बहुत कम प्रभाव पड़ता है।
तथापि दस्तावेज़ एचटीएमएल या एक्सएचटीएमएल हो, जब फाइल प्रणाली पर संग्रहीत किया जाता है या किसी नेटवर्क पर प्रसारित किया जाता है, तो दस्तावेज़ के कैरेक्टर को विशेष कैरेक्टर एन्कोडिंग के अनुसार अंश ऑक्टेट (कंप्यूटिंग) एस (बाइट्स) के अनुक्रम के रूप में एन्कोड किया जाता है। यह एन्कोडिंग या तो यूनिकोड परिवर्तन प्रारूप हो सकता है, जैसे यूटीएफ-8, जो किसी भी यूनिकोड कैरेक्टर को सीधे एन्कोड कर सकता है, या लीगेसी एन्कोडिंग, जैसे विंडोज-1252, जो नहीं कर सकता। हालांकि, एन्कोडिंग का उपयोग करते समय भी जो सभी यूनिकोड कैरेक्टर का समर्थन नहीं करते हैं, एन्कोडेड दस्तावेज़ संख्यात्मक कैरेक्टर संदर्भों का उपयोग कर सकता है। उदाहरण के लिए, ☺
(☺) का उपयोग यूनिकोड कैरेक्टर सेट में मुस्कुराते हुए चेहरे के कैरेक्टर को इंगित करने के लिए किया जाता है।
कैरेक्टर एन्कोडिंग
संख्यात्मक कैरेक्टर संदर्भों का सहारा लिए बिना सभी यूनिकोड कैरेक्टर का समर्थन करने के लिए, वेब पेज में सभी यूनिकोड को सम्मिलित करने वाला एन्कोडिंग होना चाहिए। सबसे लोकप्रिय यूटीएफ-8 है, जहां एएससीआईआई कैरेक्टर, जैसे अंग्रेजी अक्षर, अंक, और कुछ अन्य सामान्य कैरेक्टर एएससीआईआई के विरुद्ध अपरिवर्तित संरक्षित किए जाते हैं। यह एचटीएमएल कोड (जैसे
और ) को एएससीआईआई की तुलना में अपरिवर्तित बनाता है। एएससीआईआई श्रेणी के बाहर के कैरेक्टर 2–4 बाइट्स में संग्रहित किए जाते हैं। यूटीएफ-16 का उपयोग करना भी संभव है जहां अधिकांश कैरेक्टर को अलग-अलग एंडीनेस के साथ दो बाइट के रूप में संग्रहीत किया जाता है, जो आधुनिक ब्राउज़रों द्वारा समर्थित है लेकिन सामान्यतः कम उपयोग किया जाता है।
संख्यात्मक कैरेक्टर संदर्भ
लीगेसी एन्कोडिंग की सीमाओं के आसपास काम करने के लिए, एचटीएमएल को इस तरह डिज़ाइन किया गया है कि संख्यात्मक कैरेक्टर संदर्भ का उपयोग करके एचटीएमएल दस्तावेज़ के अंदर संपूर्ण यूनिकोड के कैरेक्टर का प्रतिनिधित्व करना संभव है: कैरेक्टर का क्रम जो यूनिकोड कोड बिंदु को स्पष्ट रूप से बताता है जिस पात्र का प्रतिनिधित्व किया जा रहा है। कैरेक्टर संदर्भ रूप लेता है&#
एन;
, जहां N या तो यूनिकोड कोड बिंदु के लिए दशमलव संख्या है, या हेक्साडेसिमल संख्या है, जिस स्थिति में इसे इसके द्वारा उपसर्ग किया जाना चाहिए x
. संख्यात्मक कैरेक्टर संदर्भ बनाने वाले कैरेक्टर इंटरनेट पर उपयोग के लिए स्वीकृत प्रत्येक एन्कोडिंग में सार्वभौमिक रूप से प्रतिनिधित्व योग्य हैं।
इस संदर्भ में हेक्साडेसिमल के लिए समर्थन हाल ही का है, इसलिए पुराने ब्राउज़रों को हेक्साडेसिमल संख्याओं के साथ संदर्भित कैरेक्टर को प्रदर्शित करने में समस्या हो सकती है – लेकिन उन्हें वैसे भी कोड पॉइंट 255 से ऊपर यूनिकोड कैरेक्टर को प्रदर्शित करने में समस्या होगी। पुराने ब्राउज़रों के साथ उत्तम संगतता सुनिश्चित करने के लिए, हेक्साडेसिमल कोड बिंदु को दशमलव मान में परिवर्तित करना अभी भी सामान्य अभ्यास है (उदाहरण के लिए 合
के अतिरिक्त 合
).
नामित कैरेक्टर संस्थाएं
एचटीएमएल 4 में, कैरेक्टर के लिए 252 नामित कैरेक्टर संस्थाओं का मानक सेट है - कुछ सामान्य, कुछ अस्पष्ट - जो या तो कुछ कैरेक्टर एन्कोडिंग में नहीं पाए जाते हैं या कुछ संदर्भों में मार्कअप संवेदनशील होते हैं (उदाहरण के लिए कोण कोष्ठक और उद्धरण चिह्न)। हालांकि किसी भी यूनिकोड कैरेक्टर को उसके संख्यात्मक कोड बिंदु द्वारा संदर्भित किया जा सकता है, कुछ एचटीएमएल दस्तावेज़ लेखक इसके अतिरिक्त इन नामित संस्थाओं का उपयोग करना पसंद करते हैं, जहां संभव हो, क्योंकि वे कम गूढ़ हैं और प्रारंभिक ब्राउज़रों द्वारा उत्तम समर्थित थे।
इकाई संदर्भों के उपयोग के माध्यम से कैरेक्टर संस्थाओं को एचटीएमएल दस्तावेज़ में सम्मिलित किया जा सकता है, जो '&
EntityName;
, जहां EntityName इकाई का नाम है। उदाहरण के लिए, —
, बहुत कुछ एक सा —
या —
, प्रतिनिधित्व करता है U+2014: em डैश कैरेक्टर — तथापि प्रयुक्त कैरेक्टर एन्कोडिंग में वह कैरेक्टर न हो।
पूरी सूची के लिए, देखें: एक्सएमएल और एचटीएमएल कैरेक्टर इकाई संदर्भों की सूची।
कैरेक्टर एन्कोडिंग निर्धारण
एचटीएमएल को सही ढंग से संसाधित करने के लिए, वेब ब्राउज़र को यह पता लगाना चाहिए कि कौन से यूनिकोड कैरेक्टर एचटीएमएल दस्तावेज़ के एन्कोडेड रूप से दर्शाए गए हैं। ऐसा करने के लिए, वेब ब्राउज़र को पता होना चाहिए कि किस एन्कोडिंग का उपयोग किया गया था।
एन्कोडिंग जानकारी
जब कोई दस्तावेज़ एमआईएमई संदेश या परिवहन के माध्यम से प्रेषित होता है जो एमआईएमई सामग्री प्रकार जैसे एचटीटीपी प्रतिक्रिया का उपयोग करता है, तो संदेश सामग्री-प्रकार शीर्षलेख के माध्यम से एन्कोडिंग को संकेत दे सकता है, जैसे Content-Type: text/html; charset=UTF-8
. एन्कोडिंग घोषित करने के अन्य बाहरी साधनों की अनुमति है लेकिन संभवतया ही कभी उपयोग किया जाता है। यदि दस्तावेज़ यूनिकोड एन्कोडिंग की तुलना का उपयोग करता है, तो एन्कोडिंग जानकारी बाइट ऑर्डर मार्क (बीओएम) के रूप में भी उपस्थित हो सकती है। अंत में, एन्कोडिंग को एचटीएमएल सिंटैक्स के माध्यम से घोषित किया जा सकता है। के लिए text/html
क्रमांकन तब तक, जब तक पेजएएससीआईआई के विस्तार में एन्कोड किया गया हो (जैसे यूटीएफ-8, और इस प्रकार, यदि पेजयूटीएफ-16 का उपयोग नहीं कर रहा है), a meta
तत्व, जैसे <meta http-equiv="content-type" content="text/html; charset=UTF-8">
या (एचटीएमएल5 से प्रारंभ) <meta charset="UTF-8">
उपयोग किया जा सकता है। एक्सएमएल के रूप में क्रमबद्ध एचटीएमएल पेजों के लिए, घोषणा विकल्प या तो एन्कोडिंग डिफ़ॉल्ट (जो एक्सएमएल दस्तावेजों के लिए यूटीएफ -8 है) पर भरोसा करना है, या एक्सएमएल एन्कोडिंग घोषणा का उपयोग करना है। एक्सएमएल के रूप में प्रस्तुत एचटीएमएल में मेटा विशेषता कोई भूमिका नहीं निभाती है।
एन्कोडिंग डिफ़ॉल्ट
एन्कोडिंग डिफ़ॉल्ट तब प्रयुक्त होता है जब कोई बाहरी या आंतरिक एन्कोडिंग घोषणा नहीं होती है और कोई बाइट ऑर्डर चिह्न भी नहीं होता है। जबकि एक्सएमएल के रूप में प्रस्तुत किए गए एचटीएमएल पेजों के लिए एन्कोडिंग डिफ़ॉल्ट यूटीएफ-8 होना आवश्यक है, नियमित वेब पेज के लिए एन्कोडिंग डिफ़ॉल्ट (अर्थात: एचटीएमएल पेजों के लिए क्रमबद्ध रूप से text/html
) ब्राउज़र के स्थानीयकरण के आधार पर भिन्न होता है। मुख्य रूप से पश्चिमी यूरोपीय भाषाओं के लिए स्थापित प्रणाली के लिए, यह सामान्यतः ISO 8859-1#विंडोज-1252|विंडोज-1252 होगा। सिरिलिक कैरेक्टरमाला स्थानों के लिए, डिफ़ॉल्ट सामान्यतः विंडोज-1251 है। किसी ऐसे स्थान के ब्राउज़र के लिए जहां लीगेसी मल्टी-बाइट कैरेक्टर एनकोडिंग प्रचलित हैं, ऑटो-डिटेक्शन के कुछ रूप प्रयुक्त होने की संभावना है।
एन्कोडिंग रुझान
प्रोग्रामिंग भाषाओं और ऑपरेटिंग प्रणाली में 8-बिट पाठ प्रस्तुतियों की विरासत और एन्कोडिंग की बारीकियों को समझने की आवश्यकता के साथ बोझिल उपयोगकर्ताओं से बचने की इच्छा के कारण, एचटीएमएल लेखकों द्वारा उपयोग किए जाने वाले कई टेक्स्ट संपादक एन्कोडिंग के विकल्प की पेशकश करने में असमर्थ या अनिच्छुक हैं। फ़ाइलों को डिस्क में सहेजते समय और अक्सर बहुत सीमित सीमा से परे कैरेक्टर के इनपुट की अनुमति भी नहीं देते हैं। परिणामस्वरूप, कई एचटीएमएल लेखक एन्कोडिंग मुद्दों से अनभिज्ञ हैं और उन्हें इस बात का कोई अंदाजा नहीं है कि उनके दस्तावेज़ वास्तव में किस एन्कोडिंग का उपयोग करते हैं। गलतफहमी, जैसे विश्वास है कि एन्कोडिंग घोषणा वास्तविक एन्कोडिंग में परिवर्तन को प्रभावित करती है (जबकि यह वास्तव में केवल लेबल है जो गलत हो सकता है), इस संपादक के रवैये का भी कारण है। उसी दिशा में योगदान देने वाला अन्य कारक, यूटीएफ-8 का आगमन है – जो अन्य एन्कोडिंग की आवश्यकता को बहुत कम कर देता है, और इस प्रकार आधुनिक संपादक एचटीएमएल5 विनिर्देश द्वारा अनुशंसित डिफ़ॉल्ट रूप से जाते हैं,[1] यूटीएफ -8 के लिए।
बाइट ऑर्डर मार्क/यूनिकोड सूँघना
एचटीएमएल (सामग्री-प्रकार टेक्स्ट/एचटीएमएल और सामग्री/प्रकार एप्लिकेशन/एक्सएचटीएमएल+एक्सएमएल) के दोनों सीरियलाइजेशन के लिए, बाइट ऑर्डर मार्क (बीओएम) एचटीएमएल दस्तावेज़ के भीतर एन्कोडिंग जानकारी प्रसारित करने का प्रभावी तरीका है। यूटीएफ-8 के लिए, BOM वैकल्पिक है, जबकि यूटीएफ-16 और यूटीएफ-32 एनकोडिंग के लिए यह अनिवार्य है। (ध्यान दें: BOM के बिना यूटीएफ-16 और यूटीएफ-32 को औपचारिक रूप से अलग-अलग नामों से जाना जाता है, वे अलग-अलग एनकोडिंग हैं, और इस प्रकार कुछ प्रकार की एन्कोडिंग घोषणा की आवश्यकता होती है - यूटीएफ-16BE, यूटीएफ-16LE, यूटीएफ-32LE और यूटीएफ-32BE देखें .) BOM कैरेक्टर (U+FEFF) के उपयोग का मतलब है कि एन्कोडिंग स्वचालित रूप से किसी भी प्रोसेसिंग एप्लिकेशन के लिए खुद को घोषित करती है। प्रसंस्करण अनुप्रयोगों को क्रमशः यूटीएफ-32, यूटीएफ-16 या यूटीएफ-8 एन्कोडेड के रूप में दस्तावेज़ की पहचान करने के लिए बाइट स्ट्रीम में प्रारंभिक 0x0000FEFF, 0xFEFF या 0xEFBBBF की तलाश करने की आवश्यकता है। इन एन्कोडिंग के लिए किसी अतिरिक्त मेटाडेटा तंत्र की आवश्यकता नहीं है क्योंकि बाइट-ऑर्डर चिह्न में प्रसंस्करण अनुप्रयोगों के लिए आवश्यक सभी जानकारी सम्मिलित है। ज्यादातर परिस्थितियों में, बाइट-ऑर्डर मार्क कैरेक्टर को अन्य कैरेक्टर्स से अलग एडिटिंग एप्लिकेशन द्वारा हैंडल किया जाता है, इसलिए लेखक द्वारा गलत एन्कोडिंग को इंगित करने के लिए बाइट ऑर्डर मार्क को हटाने या अन्यथा बदलने का बहुत कम जोखिम होता है (जैसा कि एन्कोडिंग घोषित होने पर हो सकता है) अंग्रेजी/लैटिन लिपि में)। यदि दस्तावेज़ में बाइट-ऑर्डर चिह्न का अभाव है, तो तथ्य यह है कि एचटीएमएल दस्तावेज़ में पहला गैर-रिक्त मुद्रण योग्य कैरेक्टर <(U+003C) माना जाता है, जिसका उपयोग यूटीएफ-8/यूटीएफ-16/यूटीएफ- निर्धारित करने के लिए किया जा सकता है। 32 एन्कोडिंग।
एन्कोडिंग ओवरराइडिंग
कई एचटीएमएल दस्तावेज़ों को गलत एन्कोडिंग जानकारी, या कोई एन्कोडिंग जानकारी बिल्कुल नहीं दी जाती है। ऐसे मामलों में एन्कोडिंग निर्धारित करने के लिए, कई ब्राउज़र उपयोगकर्ता को किसी सूची से मैन्युअल रूप से एन्कोडिंग नाम चुनने की अनुमति देते हैं। वे एन्कोडिंग ऑटो-डिटेक्शन एल्गोरिदम भी नियोजित कर सकते हैं जो कंसर्ट में या के साथ काम करता है – बीओएम के मामले में और एचटीएमएल के मामले में एक्सएमएल के रूप में कार्य करता है – मैनुअल ओवरराइड के खिलाफ।
एचटीएमएल दस्तावेज़ों के लिए जो हैं text/एचटीएमएल
क्रमबद्ध, मैनुअल ओवरराइड सभी दस्तावेजों पर प्रयुक्त हो सकता है, या केवल उन पर प्रयुक्त हो सकता है जिनके लिए घोषणाओं और/या बाइट पैटर्न को देखकर एन्कोडिंग का पता नहीं लगाया जा सकता है। यह तथ्य कि मैनुअल ओवरराइड उपस्थित है और व्यापक रूप से उपयोग किया जाता है, वेब पर स्पष्ट एन्कोडिंग घोषणाओं को अपनाने में बाधा डालता है; इसलिए समस्या के बने रहने की संभावना है। लेकिन ध्यान दें कि इंटरनेट एक्सप्लोरर, क्रोम और सफारी – एक्सएमएल और दोनों के लिए text/html
क्रमबद्धता – पेजमें BOM सम्मिलित होने पर एन्कोडिंग को ओवरराइड करने की अनुमति न दें।[2]
पसंदीदा एक्सएमएल लेबल के साथ क्रमबद्ध एचटीएमएल दस्तावेज़ों के लिए – application/xhtml+xml
, मैनुअल एन्कोडिंग ओवरराइड की अनुमति नहीं है। ऐसे एक्सएमएल दस्तावेज़ के एन्कोडिंग को ओवरराइड करने का अर्थ होगा कि दस्तावेज़ एक्सएमएल होना बंद हो गया है, क्योंकि यह पता लगाने योग्य त्रुटियों के साथ एन्कोडिंग घोषणा के लिए एक्सएमएल दस्तावेज़ों के लिए घातक त्रुटि है। वर्तमान में, फ़ायरफ़ॉक्स जैसे गेको ब्राउज़र इस नियम का पालन करते हैं, जबकि अन्य सामान्य ब्राउज़र जो एचटीएमएल को एक्सएमएल के रूप में समर्थन करते हैं, जैसे कि वेबकिट ब्राउज़र (क्रोम / सफारी) [3] एक्सएचटीएमएल दस्तावेज़ों के एन्कोडिंग को मैन्युअल रूप से ओवरराइड करने की अनुमति दें।
वेब ब्राउज़र समर्थन
कई ब्राउज़र पूरे यूनिकोड प्रदर्शनों की सूची के केवल छोटे उपसमुच्चय को प्रदर्शित करने में सक्षम हैं। यहां बताया गया है कि आपका ब्राउज़र विभिन्न यूनिकोड कोड बिंदुओं को कैसे प्रदर्शित करता है:
Character | एचटीएमएल char ref | Unicode name | What your browser displays |
---|---|---|---|
U+0041 | A or A
|
Latin capital letter A | A |
U+00DF | ß or ß
|
Latin small letter Sharp S | ß |
U+00FE | þ or þ
|
Latin small letter Thorn | þ |
U+0394 | Δ or Δ
|
Greek capital letter Delta | Δ |
U+017D | Ž or Ž
|
Latin capital letter Z with háček | Ž |
U+0419 | Й or Й
|
Cyrillic capital letter Short I | Й |
U+05E7 | ק or ק
|
Hebrew letter Qof | ק |
U+0645 | م or م
|
Arabic letter Meem | م |
U+0E57 | ๗ or ๗
|
Thai digit 7 | ๗ |
U+1250 | ቐ or ቐ
|
Ge'ez syllable Qha | ቐ |
U+3042 | あ or あ
|
Hiragana letter A (Japanese) | あ |
U+53F6 | 叶 or 叶
|
CJK Unified Ideograph-53F6 (Simplified Chinese "Leaf") | 叶 |
U+8449 | 葉 or 葉
|
CJK Unified Ideograph-8449 (Traditional Chinese "Leaf") | 葉 |
U+B5AB | 떫 or 떫
|
Hangul syllable Tteolp (Korean "Ssangtikeut Eo Rieulbieup") | 떫 |
U+16A0 | ᚠ or ᚠ
|
Runic letter Fehu | ᚠ |
U+0D37 | ഷ or ഷ
|
Malayalam letter ഷ (ṣha) | ഷ |
U+1F602 | 😂 or 😂
|
Face with Tears of Joy emoji | 😂 |
To display all of the characters above, you may need to install one or more large multilingual fonts, like Code2000. |
मोज़िला फ़ायरफ़ॉक्स, ओपेरा (वेब ब्राउज़र), सफारी (वेब ब्राउज़र) और इंटरनेट एक्सप्लोरर (संस्करण 7 से) जैसे कुछ वेब ब्राउज़र पेजपर प्रत्येक व्यक्तिगत कैरेक्टर को प्रदर्शित करने के लिए बुद्धिमानी से फ़ॉन्ट चुनकर बहुभाषी वेब पेज प्रदर्शित करने में सक्षम हैं। . वे यूनिकोड ब्लॉक के किसी भी मिश्रण को सही ढंग से प्रदर्शित करेंगे, जब तक कि ऑपरेटिंग प्रणाली में टाइपफेस # यूनिकोड फोंट की उपयुक्त सूची उपस्थित हो।
पुराने ब्राउज़र, जैसे नेटस्केप नेविगेटर 4.77 और इंटरनेट एक्सप्लोरर 6, केवल पेजके कैरेक्टर एन्कोडिंग से जुड़े वर्तमान फ़ॉन्ट द्वारा समर्थित पाठ प्रदर्शित कर सकते हैं, और संख्यात्मक कैरेक्टर संदर्भों को वर्तमान कैरेक्टर एन्कोडिंग के भीतर कोड मानों के संदर्भ के रूप में गलत समझ सकते हैं, बल्कि यूनिकोड कोड बिंदुओं के संदर्भ में। जब आप ऐसे ब्राउज़र का उपयोग कर रहे हैं, तो यह संभावना नहीं है कि आपके कंप्यूटर में वे सभी फ़ॉन्ट हों, या यह कि ब्राउज़र एक ही पेजपर सभी उपलब्ध फ़ॉन्ट का उपयोग कर सकता है। परिणामस्वरूप, ब्राउज़र ऊपर दिए गए उदाहरणों में पाठ को सही ढंग से प्रदर्शित नहीं करेगा, हालांकि यह उनमें से एक सबसेट प्रदर्शित कर सकता है। क्योंकि वे मानक के अनुसार एन्कोड किए गए हैं, हालांकि, वे किसी भी प्रणाली पर सही ढंग से प्रदर्शित होंगे जो आज्ञाकारी है और जिसमें अक्षर उपलब्ध हैं। इसके अतिरिक्त, नामित इकाई संदर्भों में उपयोग के लिए दिए गए नाम वाले कैरेक्टर दूसरों की तुलना में अधिक सामान्य रूप से उपलब्ध होने की संभावना है।
मूल बहुभाषी तल के बाहर कैरेक्टर प्रदर्शित करने के लिए, जैसे कि गोथिक अक्षर फेहु, जो उपरोक्त तालिका में रूनिक अक्षर फेहु का एक प्रकार है, कुछ प्रणालियों (जैसे विंडोज 2000) को उनकी सेटिंग्स के मैनुअल समायोजन की आवश्यकता होती है।
उपयोग की आवृत्ति
Google के वेब इंडेक्स के आंतरिक डेटा के अनुसार, दिसंबर 2007 में यूटीएफ-8 यूनिकोड एन्कोडिंग वेब पेजों पर सबसे अधिक उपयोग किया जाने वाला एन्कोडिंग बन गया, एएससीआईआई (US) और ISO/IEC 8859-1|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