एचटीएमएल में अक्षर एनकोडिंग: Difference between revisions
(Created page with "{{Short description|Use of encoding systems for international characters in HTML}} {{For|a list of character entity references|List of XML and HTML character entity references...") |
m (Arti moved page एचटीएमएल में वर्ण एन्कोडिंग to एचटीएमएल में अक्षर एनकोडिंग without leaving a redirect) |
||
(6 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Use of encoding systems for international characters in HTML}} | {{Short description|Use of encoding systems for international characters in HTML}} | ||
{{For| | {{For|वर्ण इकाई संदर्भों की एक सूची|XML और HTML वर्ण इकाई संदर्भों की सूची}} | ||
{{Hatnote| | {{Hatnote|विकिपीडिया के अंतर्गत लिंक ठीक करने के लिए देखें [[Help:Percent-encoding#Fixing links with unsupported characters|सहायता:प्रतिशत-एन्कोडिंग § असमर्थित वर्णों वाले लिंक ठीक करना]]।}} | ||
{{Html series}} | {{Html series}} | ||
जबकि हाइपरटेक्स्ट मार्कअप | जबकि हाइपरटेक्स्ट मार्कअप भाषा ([[एचटीएमएल]]) 1991 से उपयोग में है, दिसंबर 1997 से एचटीएमएल 4.0 पहला मानकीकृत संस्करण था जहां अंतर्राष्ट्रीय [[चरित्र (कंप्यूटिंग)|वर्ण (कंप्यूटिंग)]] को उचित रूप से पूर्ण निरूपण दिया गया था। जब एक HTML दस्तावेज़ में सात-बिट [[ASCII]] की सीमा के बाहर विशेष वर्ण सम्मिलित होते हैं, तो दो लक्ष्य विचार करने योग्य होते हैं: सूचना की [[अखंडता]], और सार्वभौमिक [[वेब ब्राउज़र|ब्राउज़र]] प्रदर्शन होते हैं। | ||
== दस्तावेज़ के वर्ण एन्कोडिंग निर्दिष्ट करना == | == दस्तावेज़ के वर्ण एन्कोडिंग को निर्दिष्ट करना == | ||
दस्तावेज़ में | यह निर्दिष्ट करने के दो सामान्य प्रकार हैं कि दस्तावेज़ में किस वर्ण का एन्कोडिंग में उपयोग किया गया है। | ||
सबसे पहले, [[वेब सर्वर]] | सबसे पहले, [[वेब सर्वर]] [[ हाइपरटेक्स्ट परहस्त शिष्टाचार |हाइपरटेक्स्ट परहस्त प्रोटोकॉल]] (HTTP)<code>विषय-</code>प्रकार हेडर वर्ण एन्कोडिंग या <code>"चारसमुच्चय"</code>में सम्मिलित कर सकता है, जो विशिष्ट रूप से इस तरह दिखेगा:<ref>{{citation |chapter-url=http://tools.ietf.org/html/rfc7231#section-3.1.1.5|chapter=Content-Type |title=Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content|publisher=[[IETF]] |date=June 2014 |doi=10.17487/RFC7231 |access-date=2014-07-30|editor-last1=Fielding |editor-last2=Reschke |editor-first1=R |editor-first2=J |last1=Fielding |first1=R. |last2=Reschke |first2=J. |s2cid=14399078 }}</ref><blockquote>विषय -प्रकार: text/html; charset=utf-8</blockquote>यह विधि HTTP सर्वर को [[सामग्री बातचीत|विषय वार्ता]] के अनुसार दस्तावेज़ में एन्कोडिंग को बदलने का एक सुविधाजनक प्रकार देती है; कुछ HTTP सर्वर सॉफ़्टवेयर ऐसा कर सकते हैं, उदाहरण के लिए अपाचे मॉड्यूल की सूची <code>mod_charset_lite के साथ है।</code><ref>{{cite web| url = http://httpd.apache.org/docs/2.0/en/mod/mod_charset_lite.html| title = Apache Module mod_charset_lite}}</ref> | ||
यह विधि HTTP सर्वर को [[सामग्री बातचीत]] के अनुसार दस्तावेज़ | |||
दूसरा, एक घोषणा को दस्तावेज़ में ही सम्मिलित किया जा सकता है। | |||
[[HTML5]] निम्नलिखित | HTML के लिए इस जानकारी को दस्तावेज़ के शीर्ष के पास मुख्य तत्व के अंदर सम्मिलित करना संभव है:<ref name="html5charset" /><blockquote><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></blockquote>[[HTML5]] निम्नलिखित वाक्यविन्यास को भी बिल्कुल वही अर्थ देने की अनुमति देता है:<ref name="html5charset">{{citation |chapter-url=http://www.w3.org/TR/html5/document-metadata.html#specifying-the-documents-character-encoding |chapter=Specifying the document's character encoding |title=HTML5 |publisher=[[World Wide Web Consortium]] |date=14 December 2017 |access-date=2018-05-28}}</ref><blockquote><meta charset="utf-8"></blockquote>[[एक्सएचटीएमएल|XHTML]] दस्तावेज़ों में एक तीसरा विकल्प है: [[एक्सएमएल|XML]] घोषणा के माध्यम से वर्ण एन्कोडिंग को व्यक्त करना, इस प्रकार:<ref>{{citation |chapter-url=http://www.w3.org/TR/REC-xml/#sec-prolog-dtd |chapter=Prolog and Document Type Declaration |title=XML |first1=T. |last1=Bray |author-link1=Tim Bray |first2=J. |last2=Paoli |first3=C. |last3=Sperberg-McQueen |author-link3=Michael Sperberg-McQueen |first4=E. |last4=Maler |first5=F. |last5=Yergeau |publisher=[[W3C]] |date=26 November 2008 |access-date=8 March 2010}}</ref> | ||
< | |||
< | |||
</ | |||
[[एक्सएचटीएमएल]] दस्तावेज़ों में एक तीसरा विकल्प है: [[एक्सएमएल]] घोषणा के माध्यम से वर्ण एन्कोडिंग व्यक्त | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
इस दूसरे दृष्टिकोण के साथ, क्योंकि वर्ण एन्कोडिंग को | इस दूसरे दृष्टिकोण के साथ, क्योंकि घोषणा को पार्स किए जाने तक वर्ण एन्कोडिंग को नहीं जाना जा सकता है, इसलिए यह जानने में समस्या होती है कि दस्तावेज़ में घोषणा और कौन सा वर्ण एन्कोडिंग का उपयोग किया गया है। यदि वर्ण एन्कोडिंग एक ASCII विस्तार है तो घोषणा तक का विषय शुद्ध ASCI होना चाहिए और यह सही प्रकार से काम करता है। वर्ण एन्कोडिंग के लिए जो ASCII विस्तार नहीं हैं (अर्थात ASCII का अधिसमुच्चय नहीं), जैसे कि [[UTF-16BE]] और [[UTF-16LE]], HTML का एक प्रोसेसर, जैसे कि वेब ब्राउज़र, कुछ प्रकरणो में ह्यूरिस्टिक्स के उपयोग के माध्यम से घोषणा को पार्स करने में सक्षम होना चाहिए। | ||
=== एन्कोडिंग | === एन्कोडिंग संसूचन एल्गोरिदम === | ||
HTML5 के अनुसार अनुशंसित | HTML5 के अनुसार अनुशंसित चारसमुच्चय [[UTF-8]] है।<ref name=html5charset/> इनपुट के कई स्रोतों के आधार पर दस्तावेज़ के वर्ण एन्कोडिंग को निर्धारित करने के लिए विनिर्देश में एक <nowiki>''</nowiki>एन्कोडिंग स्नीफिंग एल्गोरिदम<nowiki>''</nowiki> को परिभाषित किया गया है, जिसमें सम्मिलित हैं: | ||
# स्पष्ट उपयोगकर्ता निर्देश | # स्पष्ट उपयोगकर्ता निर्देश | ||
# दस्तावेज़ के पहले 1024 बाइट्स के | # दस्तावेज़ के पहले 1024 बाइट्स के अंतर्गत एक स्पष्ट मेटा टैग | ||
# दस्तावेज़ के पहले तीन बाइट्स के | # दस्तावेज़ के पहले तीन बाइट्स के अंतर्गत एक [[बाइट ऑर्डर मार्क|बाइट अनुक्रम मार्क]] (BOM)। | ||
# HTTP | # HTTP विषय-प्रकार या अन्य परिवहन परत की जानकारी | ||
# विशिष्ट अनुक्रमों या बाइट मानों की श्रेणियों की | # विशिष्ट अनुक्रमों या बाइट मानों की श्रेणियों और अन्य अस्थायी पहचान तंत्रों की दृष्टि में दस्तावेज़ बाइट्स का विश्लेषण।<ref>{{cite web| url = http://www.w3.org/TR/html5/syntax.html#prescan-a-byte-stream-to-determine-its-encoding| title = HTML5 prescan a byte stream to determine its encoding}}</ref> | ||
प्रिंट करने योग्य ASCII | प्रिंट करने योग्य ASCII श्रेणी (32 से 126) के बाहर वर्ण विशिष्ट रूप से गलत प्रकार से दिखाई देते हैं। यह [[अंग्रेजी भाषा]] बोलने वाले उपयोगकर्ताओं के लिए कुछ समस्याएं प्रस्तुत करते है, लेकिन अन्य भाषाओं को नियमित रूप से—कुछ प्रकरणों में, हमेशा—उस सीमा के बाहर वर्णों की आवश्यकता होती है। चीनी, जापानी, और कोरियाई ([[सीजेके]]) भाषा परिवेश में जहां कई अलग-अलग बहु-बाइट एनकोडिंग हैं, स्वतः-संसूचन भी प्रायः नियोजित होता है। अंत में, ब्राउज़र विशिष्ट रूप से उपयोगकर्ता को गलत चारसमुच्चय लेबल मैन्युअल रूप से भी अध्यारोहण करने की अनुमति देते हैं। | ||
गैर-पश्चिमी भाषाओं में | बहुभाषी वेबसाइटों और गैर-पश्चिमी भाषाओं में वेबसाइटों के लिए UTF-8 का उपयोग करना सामान्य है, जो सभी भाषाओं के लिए समान एन्कोडिंग के उपयोग की अनुमति देता है। [[UTF-16]] या [[UTF-32]], जिनका उपयोग सभी भाषाओं के लिए भी किया जा सकता है, कम व्यापक रूप से उपयोग किए गए क्रमादेशन भाषाओं में संभालना कठिन हो सकता है जो बाइट-उन्मुख ASCII अधिसमुच्चय एन्कोडिंग मानते हैं, और वे ASCII वर्णों की एक उच्च आवृत्ति टेक्स्ट के साथ कम सक्षम हैं, जो विशिष्ट रूप से HTML दस्तावेज़ों के प्रकरण में होता है। | ||
किसी | किसी पेज को सफलतापूर्वक देखना इस बात का संकेत नहीं है कि इसकी एन्कोडिंग सही प्रकार से निर्दिष्ट है। यदि पेज के निर्माता और पाठक दोनों कुछ प्लेटफ़ॉर्म-विशिष्ट वर्ण एन्कोडिंग मान रहे हैं, और सर्वर कोई पहचान संबंधी जानकारी नहीं भेजते है, तो पाठक फिर भी पेज को निर्माता के रूप में देखेगा, लेकिन विभिन्न प्लेटफार्मों पर या अलग-अलग मूल भाषाओं वाले अन्य पाठक पेज को उस तरह से नहीं देख पाएंगे जैसा कि सोचा गया था। | ||
== अनुमत एन्कोडिंग == | == अनुमत एन्कोडिंग == | ||
HTML मानकों (वर्तमान WHATWG HTML जीवन स्तर, साथ ही पूर्व प्रतिस्पर्धी [[W3C]] HTML 5.0 और 5.1) द्वारा संदर्भित [[WHATWG]] एन्कोडिंग मानक, एन्कोडिंग की एक सूची निर्दिष्ट करता है जिसे ब्राउज़र को समर्थन करना चाहिए। HTML मानक अन्य एनकोडिंग के समर्थन को प्रतिबंधित करता हैं।<ref name="html51">{{Cite web |url=https://www.w3.org/TR/html51/syntax.html#character-encodings |title=8.2.2.3. Character encodings |website=HTML 5.1 Standard |publisher=W3C}}</ref><ref name="html50">{{Cite web |url=https://www.w3.org/TR/html5/syntax.html#character-encodings |title=8.2.2.3. Character encodings |website=HTML 5 Standard |publisher=W3C}}</ref><ref name="html5living">{{Cite web |url=https://html.spec.whatwg.org/multipage/parsing.html#character-encodings |title=12.2.3.3 Character encodings |website=HTML Living Standard |publisher=WHATWG}}</ref> एन्कोडिंग मानक आगे यह निर्धारित करता है कि नए प्रारूप, नए प्रोटोकॉल (प्रचलित प्रारूपों का उपयोग किए जाने पर भी) और नए दस्तावेज़ों के लेखकों को UTF-8 का उपयोग करना आवश्यक है।<ref name="namesandlabels"/> | |||
UTF-8 के अलावा, एन्कोडिंग मानक के संदर्भ में निम्नलिखित एन्कोडिंग स्पष्ट रूप से | UTF-8 के अलावा, एन्कोडिंग मानक के संदर्भ में निम्नलिखित एन्कोडिंग HTML मानक में स्पष्ट रूप से सूचीबद्ध हैं:<ref name="html5living"/> | ||
{{columns-list|colwidth=12em| | {{columns-list|colwidth=12em| | ||
* [[ | * [[आईएसओ-8859-2]] | ||
* [[ | * [[आईएसओ-8859-7]] | ||
* [[ | * [[आईएसओ-8859-8]] | ||
* [[ | * [[विंडोज़-874]]{{efn|Also specified for <code>[[TIS-620]]</code>, <code>[[ISO-8859-11]]</code> and related labels.<ref name="namesandlabels"/>}} | ||
* [[ | * [[विंडोज़-1250]] | ||
* [[ | * [[विंडोज़-1251]] | ||
* [[ | * [[विंडोज़-1252]]{{efn|Also specified for <code>[[ASCII]]</code>, <code>[[ISO-8859-1]]</code> and related labels.<ref name="namesandlabels"/>}} | ||
* [[ | * [[विंडोज़-1254]]{{efn|Also specified for <code>[[ISO-8859-9]]</code> and related labels.<ref name="namesandlabels"/>}} | ||
* [[ | * [[विंडोज़-1255]] | ||
* [[ | * [[विंडोज़-1256]] | ||
* [[ | * [[विंडोज़-1257]] | ||
* [[ | * [[विंडोज़-1258]] | ||
* [[ | * [[जीबी18030]]{{efn|Specified with 0xA3A0 as a duplicate encoding of the [[ideographic space]] (U+3000) for compatibility reasons, and as such excluding U+E5E5 (a private use character).<ref name="gbenc"/><ref name="gbindex"/> Also, specified with 0x80 accepted as an alternative encoding of the [[euro sign]] (U+20AC; see [[Windows-936]]).<ref>{{cite web |url=https://encoding.spec.whatwg.org/#gb18030-decoder |title=10.2.1. gb18030 decoder |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref> Otherwise, follows the mappings from the 2005 standard.<ref name="gbindex">{{cite web |url=https://encoding.spec.whatwg.org/#index-gb18030 |title=5. Indexes (§ index gb18030) |work=Encoding Standard |institution=[[WHATWG]] |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref>}} | ||
* [[ | * [[बिग 5]]{{efn|[[Hong Kong Supplementary Character Set]] variant, although most of the HKSCS extensions (those with lead bytes less than 0xA1) are not included by the encoder, only by the decoder.<ref>{{cite web |url=https://encoding.spec.whatwg.org/#index-big5-pointer |title=5. Indexes (§ index Big5 pointer) |work=Encoding Standard |institution=[[WHATWG]] |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref>}} | ||
* [[ | * [[शिफ्ट JIS]]{{efn|The specification includes [[IBM]] and [[NEC]] extensions (see [[Windows-31J]]).<ref>{{cite web |url=https://encoding.spec.whatwg.org/#index-jis0208 |title=5. Indexes (§ Index jis0208) |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref>}} | ||
* [[ | * [[आईएसओ-2022-JP]]{{efn|The specification uses the same index as used for Shift JIS (insofar as is within reach), i.e. includes NEC extensions. [[Half-width kana]] is converted to fullwidth by the encoder,<ref>{{cite web |url=https://encoding.spec.whatwg.org/#index-iso-2022-jp-katakana |title=5. Indexes (§ Index ISO-2022-JP katakana) |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref> but accepted using an escape sequence (ESC 0x28 0x49) by the decoder.<ref name="whatwgjisdecoder">{{cite web |url=https://encoding.spec.whatwg.org/#iso-2022-jp-decoder |title=12.2.1. ISO-2022-JP decoder |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref> [[Shift Out]] and [[Shift In]] (0x0E and 0x0F) are excluded entirely to prevent attacks.<ref name="whatwgjisdecoder" /><ref>{{cite web |url=https://encoding.spec.whatwg.org/#iso-2022-jp-encoder |title=12.2.2. ISO-2022-JP encoder |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref>}} | ||
* [[ | * [[ईयूसी-केआर]]{{efn|Actually [[Unified Hangul Code]], which is a superset which covers the entire [[Hangul Syllables (Unicode block)|Hangul Syllables]] block.<ref>{{cite web |url=https://encoding.spec.whatwg.org/#index-euc-kr |title=5. Indexes (§ index EUC-KR) |work=Encoding Standard |institution=[[WHATWG]] |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref>}} | ||
* [[ | * [[यूटीएफ-16बीई]]{{efn|Specified for decoding only; form submissions from UTF-16-coded documents are to be encoded in [[UTF-8]].<ref name="outputenc">{{cite web |url=https://encoding.spec.whatwg.org/#output-encodings |title=4.3. Output encodings |work=Encoding Standard |institution=[[WHATWG]] |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref>}} | ||
* [[ | * [[यूटीएफ-16एलई]]{{efn|For compatibility with deployed content, also specified for the plain <code>[[UTF-16]]</code> label,<ref>{{cite web |url=https://encoding.spec.whatwg.org/#utf-16le |title=14.4. UTF-16LE |work=Encoding Standard |institution=[[WHATWG]] |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref> although a [[byte order mark]] (BOM), if present, takes priority over any label.<ref>{{cite web |url=https://encoding.spec.whatwg.org/#decode |title=6. Hooks for standards (§ decode) |work=Encoding Standard |institution=[[WHATWG]] |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref> Specified for decoding only; form submissions from UTF-16-coded documents are to be encoded in [[UTF-8]].<ref name="outputenc" />}} | ||
* x- | * x-उपयोगकर्ता-परिभाषित{{efn|Maps 0x00 through 0x7F to U+0000 through U+007F, and 0x80 through 0xFF to U+F780 through U+F7FF (a [[Private Use Area]] range), such that the low 8 bits of the code point always match the original byte.<ref>{{cite web |url=https://encoding.spec.whatwg.org/#x-user-defined |title=14.5. x-user-defined |work=Encoding Standard |institution=[[WHATWG]] |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref>}} | ||
}}{{notelist}} | }}{{notelist}} | ||
निम्नलिखित अतिरिक्त एनकोडिंग | एनकोडिंग मानक में निम्नलिखित अतिरिक्त एनकोडिंग सूचीबद्ध हैं, और इसलिए उनके लिए समर्थन भी आवश्यक है:<ref name="namesandlabels">{{cite web |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren |title=4.2: Names and labels |url=https://encoding.spec.whatwg.org/#names-and-labels}}</ref> | ||
{{columns-list|colwidth=12em| | {{columns-list|colwidth=12em| | ||
* [[ | * [[कोड पेज866]] | ||
* [[ | * [[आईएसओ-8859-3]] | ||
* [[ | * [[आईएसओ-8859-4]] | ||
* [[ | * [[आईएसओ-8859-5]] | ||
* [[ | * [[आईएसओ-8859-6]] | ||
* [[ | * [[आईएसओ-8859-8-I|ISO-8859-8-{{serif|I}}]]{{efn|Uses the same encoder and decoder as ISO-8859-8, but is not subject to the visual-order behaviour which is used for documents labelled as ISO-8859-8.<ref>{{cite web |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren |title=9. Legacy single-byte encodings (§ Note) |url=https://encoding.spec.whatwg.org/#ref-for-iso-8859-8%E2%91%A0}}</ref>}} | ||
* [[ | * [[आईएसओ-8859-10]] | ||
* [[ | * [[आईएसओ-8859-13]] | ||
* [[ | * [[आईएसओ-8859-14]] | ||
* [[ | * [[आईएसओ-8859-15]] | ||
* [[ | * [[आईएसओ-8859-16]] | ||
* [[ | * [[केओआई8-R]] | ||
* [[ | * [[केओआई8-U]] / [[KOI8-RU]]{{efn|Titled KOI8-U and specified for both <code>KOI8-U</code> and <code>KOI8-RU</code> labels,<ref name="namesandlabels"/> but follows [[KOI8-RU]] (i.e. includes [[Ў|Ў/ў]]).<ref>{{cite web |url=https://encoding.spec.whatwg.org/koi8-u.html |title=index KOI8-U visualization |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref><ref>{{cite web |url=https://www.w3.org/Bugs/Public/show_bug.cgi?id=17053 |title=Bug 17053: Support KOI8-RU mapping for KOI8-U |date=2015-08-19 |work=[[W3C]] Bugzilla}}</ref>}} | ||
* [[ | * [[मैक ओएस रोमन]] | ||
* [[ | * [[विंडोज़-1253]] | ||
* [[ | * [[मैक ओएस सिरिलिक encoding|Mac OS Cyrillic]] | ||
* [[ | * [[जीबीके(character encoding)|GBK]]{{efn|Also specified for <code>[[GB 2312|GB2312]]</code> and related labels. Handled the same as {{nowrap|GB 18030}} for decoding purposes.<ref>{{cite web |url=https://encoding.spec.whatwg.org/#gbk |title=10.1. GBK |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref> For encoding purposes, labelling as GBK (or {{nowrap|GB 2312}}) excludes four-byte codes, and favours the one-byte 0x80 representation for U+20AC.<ref name="gbenc">{{cite web |url=https://encoding.spec.whatwg.org/#gb18030-encoder |title=10.2.2. gb18030 encoder |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref>}} | ||
* [[ | * [[ईयूसी-जेपी]]{{efn|The specification uses the same index as used for Shift JIS (insofar as is within reach of the EUC code set 1), i.e. includes NEC extensions. [[JIS X 0212]] is included for decoding only.<ref>{{cite web |url=https://encoding.spec.whatwg.org/#index-jis0212 |title=5. Indexes (§ Index jis0212) |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren}}</ref>}} | ||
}}{{notelist}} | }}{{notelist}} | ||
निम्नलिखित एनकोडिंग | निम्नलिखित एनकोडिंग को निषिद्ध एनकोडिंग के स्पष्ट उदाहरण के रूप में सूचीबद्ध किया गया है:<ref name="html5living"/> | ||
{{columns-list|colwidth=12em| | {{columns-list|colwidth=12em| | ||
* [[CESU-8]] | * [[CESU-8]] | ||
Line 105: | Line 92: | ||
}} | }} | ||
मानक एक प्रतिस्थापन | मानक एक "प्रतिस्थापन" विकोडक को भी परिभाषित करता है, जो [[प्रतिस्थापन चरित्र|प्रतिस्थापन वर्ण]] (�) में कुछ एन्कोडिंग के रूप में लेबल की गई सभी विषय को मानचित्र करता है, इसे संसाधित करने से मना करता है। इसका उद्देश्य उन आक्षेप (जैसे [[क्रॉस साइट स्क्रिप्टिंग]]) को रोकना है जो दुर्भावनापूर्ण विषय को छिपाने के लिए उपभोगता और सर्वर के मध्य समर्थित एन्कोडिंग में अंतर का लाभ उठा सकते हैं।<ref>{{cite web |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren |url=https://encoding.spec.whatwg.org/#replacement |title=14.1: replacement}}</ref> यद्यपि समान सुरक्षा चिंता [[ISO-2022-JP]] और UTF-16 पर उपयोजित होते है, जो ASCII बाइट्स के अनुक्रमों की अलग-अलग व्याख्या करने की भी अनुमति देते हैं, इस दृष्टिकोण को उनके लिए संभव नहीं देखा गया क्योंकि वे तुलनात्मक रूप से प्रसारित विषय में अधिक बार उपयोग किए जाते हैं।<ref>{{cite web |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren |url=https://encoding.spec.whatwg.org/#security-background |title=2: Security background}}</ref> निम्नलिखित एनकोडिंग इस उपचार को प्राप्त करते हैं:<ref>{{cite web |institution=[[WHATWG]] |work=Encoding Standard |last=van Kesteren |first=Anne |author-link=Anne van Kesteren |title=4.2: Names and labels (§ replacement) |url=https://encoding.spec.whatwg.org/#ref-for-replacement%E2%91%A1}}</ref> | ||
{{columns-list|colwidth=12em| | {{columns-list|colwidth=12em| | ||
* [[ISO-2022-KR]] | * [[ISO-2022-KR]] | ||
Line 113: | Line 100: | ||
}} | }} | ||
== | == वर्ण संदर्भ == | ||
{{Main| | {{Main|वर्ण इकाई संदर्भ|संख्यात्मक वर्ण संदर्भ}} | ||
मूल वर्ण एन्कोडिंग के अलावा, वर्णों को वर्ण संदर्भों के रूप में भी एन्कोड किया जा सकता है, जो संख्यात्मक वर्ण संदर्भ ([[दशमलव]] या [[हेक्साडेसिमल]]) या वर्ण इकाई संदर्भ हो सकते हैं। | मूल वर्ण एन्कोडिंग के अलावा, वर्णों को वर्ण संदर्भों के रूप में भी एन्कोड किया जा सकता है, जो संख्यात्मक वर्ण संदर्भ ([[दशमलव]] या [[हेक्साडेसिमल]]) या ''वर्ण इकाई संदर्भ'' हो सकते हैं। वर्ण इकाई संदर्भों को कभी-कभी ''नामित इकाइयों'' या ''HTML'' के लिए ''HTML इकाइयाँ'' भी कहा जाता है। HTML के वर्ण संदर्भों का उपयोग [[SGML]] से हुआ है। | ||
=== HTML वर्ण संदर्भ === | === HTML वर्ण संदर्भ === | ||
HTML में एक ''संख्यात्मक वर्ण संदर्भ'' उसके [[यूनिवर्सल कैरेक्टर सेट|सार्वभौमिक संप्रतीक समुच्चय]]/[[यूनिकोड]] ''कोड बिंदु'' द्वारा एक वर्ण को संदर्भित करता है, और प्रारूप का उपयोग करता है। | |||
:<code>&#''nnnn'';</code> | :<code>&#''nnnn'';</code> | ||
या | या | ||
:<code>&#x''hhhh'';</code> | :<code>&#x''hhhh'';</code> | ||
जहाँ nnnn दशमलव रूप में कोड बिंदु है, और hhhh हेक्साडेसिमल रूप में कोड बिंदु है। | जहाँ ''nnnn'' दशमलव रूप में कोड बिंदु है, और ''hhhh'' हेक्साडेसिमल रूप में कोड बिंदु है। XML दस्तावेजों में ''x'' को लोवरकेस होना चाहिए। ''nnnn'' या ''hhhh'' किसी भी संख्या में अंक हो सकते हैं और इसमें अग्रणी शून्य सम्मिलित हो सकते हैं। ''hhhh'' अपरकेस और लोवरकेस को मिला सकता है, हालांकि अपरकेस सामान्य शैली है। | ||
HTML दस्तावेज़ों के प्राप्तकर्ता द्वारा उपयोग किए जाने वाले सभी वेब ब्राउज़र या [[ईमेल क्लाइंट]], या HTML दस्तावेज़ों के लेखकों द्वारा उपयोग किए जाने वाले [[पाठ संपादक]], सभी HTML वर्णों को प्रस्तुत करने में सक्षम नहीं | HTML दस्तावेज़ों के प्राप्तकर्ता द्वारा उपयोग किए जाने वाले सभी वेब ब्राउज़र या [[ईमेल क्लाइंट|ईमेल उपभोगता]], या HTML दस्तावेज़ों के लेखकों द्वारा उपयोग किए जाने वाले [[पाठ संपादक|टेक्स्ट संपादक]], सभी HTML वर्णों को प्रस्तुत करने में सक्षम नहीं होते है। अधिकांश आधुनिक सॉफ़्टवेयर उपयोगकर्ता की भाषा के लिए अधिकांश या सभी वर्णों को प्रदर्शित करने में सक्षम होते हैं, और उन वर्णों के लिए एक बॉक्स या अन्य स्पष्ट संकेतक बनाते हैं जिन्हें वे प्रस्तुत नहीं कर सकते। | ||
0 से 127 तक के कोड के लिए, मूल 7-बिट ASCII मानक | 0 से 127 तक के कोड के लिए, मूल 7-बिट ASCII मानक समुच्चय, इनमें से अधिकांश वर्णों का उपयोग वर्ण संदर्भ के बिना किया जा सकता है। 160 से 255 तक के सभी कोड वर्ण इकाई संदर्भों की सूची का उपयोग करके बनाए जा सकते हैं। इकाई नामों का उपयोग करके केवल कुछ उच्च संख्या वाले कोड बनाए जा सकते हैं, लेकिन सभी दशमलव संख्या वर्ण संदर्भ द्वारा बनाए जा सकते हैं। | ||
वर्ण इकाई संदर्भों का प्रारूप <code>&''name''</code>भी हो सकता है; जहाँ नाम एक प्रकरण-संवेदी अक्षरांकीय स्ट्रिंग है। उदाहरण के लिए, <nowiki>''</nowiki>λ<nowiki>''</nowiki> को HTML दस्तावेज़ में <code>&lambda</code>के रूप में भी एन्कोड किया जा सकता है। वर्ण इकाई संदर्भ <code>&lt;</code>, <code>&gt;</code>, <code>&quot;</code> और <code>&amp;</code> HTML और SGML में पूर्वनिर्धारित हैं, क्योंकि <code><</code>, <code>></code>, <code>"</code>और <code>&</code> का उपयोग पहले से ही मार्कअप को सीमित करने के लिए किया जाता है। इसमें विशेष रूप से XML का <code>&apos</code>सम्मिलित नहीं हैं; (') HTML5 से पहले की इकाई में सम्मिलित नहीं हैं। सभी नामित HTML वर्ण इकाई संदर्भों की सूची के साथ-साथ उन संस्करणों की सूची के लिए जिनमें वे प्रस्तावित किए गए थे, XML और HTML वर्ण इकाई संदर्भों की सूची देखें। | |||
HTML वर्ण संदर्भों का अनावश्यक उपयोग HTML पठनीयता को महत्वपूर्ण रूप से कम कर सकता है। यदि किसी वेब पेज के लिए वर्ण एन्कोडिंग उचित रूप से | HTML वर्ण संदर्भों का अनावश्यक उपयोग HTML पठनीयता को महत्वपूर्ण रूप से कम कर सकता है। यदि किसी वेब पेज के लिए वर्ण एन्कोडिंग उचित रूप से चयन किया गया है, तो HTML वर्ण संदर्भ विशिष्ट रूप से केवल ऊपर बताए गए मार्कअप विसीमक वर्णों के लिए आवश्यक होते हैं, और कुछ विशेष वर्णों के लिए (या बिल्कुल नहीं, यदि UTF-8 जैसे मूल यूनिकोड एन्कोडिंग का उपयोग किया जाता है) होते हैं। गलत HTML इकाई से बचने से [[ क्रॉस साइट स्क्रिप्टिंग |क्रॉस साइट स्क्रिप्टिंग]] जैसे अंतःक्षेपी अटैक के लिए सुरक्षा भेद्यताएं भी खुल सकती हैं। यदि HTML विशेषताओं को बिना कोट किए छोड़ दिया जाता है, तो कुछ वर्ण, सबसे महत्वपूर्ण[[ व्हाइटस्पेस चरित्र | व्हाइटस्पेस वर्ण]], जैसे कि स्पेस और टैब, को इकाई का उपयोग करके बचाना चाहिए। HTML से संबंधित अन्य भाषाओं में वर्णों से बचने के अपने प्रकार हैं। | ||
=== | === XML वर्ण संदर्भ === | ||
वर्ण इकाई संदर्भों की | वर्ण इकाई संदर्भों की बड़ी श्रृंखला के साथ पारंपरिक HTML के विपरीत, XML में केवल पाँच पूर्वनिर्धारित वर्ण इकाई संदर्भ हैं। इनका उपयोग उन वर्णों से बचने के लिए किया जाता है जो कुछ संदर्भों में मार्कअप संवेदक होते हैं:<ref>{{citation |chapter-url=http://www.w3.org/TR/REC-xml/#sec-references |chapter=Character and Entity References |title=XML |first1=T. |last1=Bray |author-link1=Tim Bray |first2=J. |last2=Paoli |first3=C. |last3=Sperberg-McQueen |author-link3=Michael Sperberg-McQueen |first4=E. |last4=Maler |first5=F. |last5=Yergeau |publisher=[[W3C]] |date=26 November 2008 |access-date=8 March 2010}}</ref> | ||
*<code>&amp;</code> → | *<code>&amp;</code> → & ([[एम्परसेंड]], U+0026) | ||
*<code>&lt;</code> → < (इससे कम चिह्न, U+003C) | *<code>&lt;</code> → < (इससे कम चिह्न, U+003C) | ||
*<code>&gt;</code> → > ( | *<code>&gt;</code> → > (इससे अधिक चिह्न, U+003E) | ||
*<code>&quot;</code> → (उद्धरण चिह्न, U+0022) | *<code>&quot;</code> → (उद्धरण चिह्न, U+0022) | ||
*<code>&apos;</code> → ' ( | *<code>&apos;</code> → ' (लोपचिह्न, U+0027) | ||
अन्य सभी वर्ण इकाई संदर्भों को उपयोग किए जाने से पहले परिभाषित | अन्य सभी वर्ण इकाई संदर्भों को उपयोग किए जाने से पहले परिभाषित करते है। उदाहरण के लिए, <code>&eacute; का उपयोग</code>(जो एक XML दस्तावेज़ में é, तीव्र उच्चारण के साथ लैटिन लोअर-केस E, यूनिकोड में U+00E9 देता है) एक त्रुटि उत्पन्न करेगा जब तक कि इकाई को पहले से ही परिभाषित नहीं किया है। XML के लिए यह भी आवश्यक है कि हेक्साडेसिमल संख्यात्मक संदर्भ में <code>x</code>लोअरकेस में हों: उदाहरण के लिए <code>&#xA1b</code>के बदले <code>&#XA1b है।</code>XHTML, जो एक XML अनुप्रयोग है, XML की पूर्वनिर्धारित इकाइयों के साथ HTML इकाई समुच्चय का समर्थन करता है। | ||
== यह भी देखें == | == यह भी देखें == | ||
* [[चारसेट सूँघना]] - कई ब्राउज़रों द्वारा उपयोग किया जाता है जब वर्ण एन्कोडिंग मेटाडेटा उपलब्ध नहीं होता है | * [[चारसेट सूँघना|चारसमुच्चय सूँघना]] - कई ब्राउज़रों द्वारा उपयोग किया जाता है जब वर्ण एन्कोडिंग मेटाडेटा उपलब्ध नहीं होता है | ||
* [[यूनिकोड और एचटीएमएल]] | * [[यूनिकोड और एचटीएमएल|यूनिकोड और HTML]] | ||
* [[भाषा कोड]] | * [[भाषा कोड]] | ||
* | * XML और HTML वर्ण इकाई संदर्भों की सूची | ||
== संदर्भ == | == संदर्भ == | ||
{{Reflist}} | {{Reflist}} | ||
== बाहरी संबंध == | == बाहरी संबंध == | ||
Line 162: | Line 147: | ||
* [http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet The Open Web Application Security Project's wiki article on cross-site scripting (XSS)] | * [http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet The Open Web Application Security Project's wiki article on cross-site scripting (XSS)] | ||
{{DEFAULTSORT:Character Encodings in Html}} | {{DEFAULTSORT:Character Encodings in Html}} | ||
[[Category: | [[Category:Articles with hatnote templates targeting a nonexistent page|Character Encodings in Html]] | ||
[[Category:Created On 14/06/2023]] | [[Category:Created On 14/06/2023|Character Encodings in Html]] | ||
[[Category:Lua-based templates|Character Encodings in Html]] | |||
[[Category:Machine Translated Page|Character Encodings in Html]] | |||
[[Category:Multi-column templates|Character Encodings in Html]] | |||
[[Category:Pages using div col with small parameter|Character Encodings in Html]] | |||
[[Category:Pages with script errors|Character Encodings in Html]] | |||
[[Category:Templates Vigyan Ready|Character Encodings in Html]] | |||
[[Category:Templates that add a tracking category|Character Encodings in Html]] | |||
[[Category:Templates that generate short descriptions|Character Encodings in Html]] | |||
[[Category:Templates using TemplateData|Character Encodings in Html]] | |||
[[Category:Templates using under-protected Lua modules|Character Encodings in Html]] | |||
[[Category:Wikipedia fully protected templates|Div col]] | |||
[[Category:एचटीएमएल|Character Encodings in Html]] | |||
[[Category:वर्ल्ड वाइड वेब कंसोर्टियम मानक|Character Encodings in Html]] |
Latest revision as of 12:36, 18 October 2023
HTML |
---|
Comparisons |
जबकि हाइपरटेक्स्ट मार्कअप भाषा (एचटीएमएल) 1991 से उपयोग में है, दिसंबर 1997 से एचटीएमएल 4.0 पहला मानकीकृत संस्करण था जहां अंतर्राष्ट्रीय वर्ण (कंप्यूटिंग) को उचित रूप से पूर्ण निरूपण दिया गया था। जब एक HTML दस्तावेज़ में सात-बिट ASCII की सीमा के बाहर विशेष वर्ण सम्मिलित होते हैं, तो दो लक्ष्य विचार करने योग्य होते हैं: सूचना की अखंडता, और सार्वभौमिक ब्राउज़र प्रदर्शन होते हैं।
दस्तावेज़ के वर्ण एन्कोडिंग को निर्दिष्ट करना
यह निर्दिष्ट करने के दो सामान्य प्रकार हैं कि दस्तावेज़ में किस वर्ण का एन्कोडिंग में उपयोग किया गया है।
सबसे पहले, वेब सर्वर हाइपरटेक्स्ट परहस्त प्रोटोकॉल (HTTP)विषय-
प्रकार हेडर वर्ण एन्कोडिंग या "चारसमुच्चय"
में सम्मिलित कर सकता है, जो विशिष्ट रूप से इस तरह दिखेगा:[1]
विषय -प्रकार: text/html; charset=utf-8
यह विधि HTTP सर्वर को विषय वार्ता के अनुसार दस्तावेज़ में एन्कोडिंग को बदलने का एक सुविधाजनक प्रकार देती है; कुछ HTTP सर्वर सॉफ़्टवेयर ऐसा कर सकते हैं, उदाहरण के लिए अपाचे मॉड्यूल की सूची mod_charset_lite के साथ है।
[2]
दूसरा, एक घोषणा को दस्तावेज़ में ही सम्मिलित किया जा सकता है।
HTML के लिए इस जानकारी को दस्तावेज़ के शीर्ष के पास मुख्य तत्व के अंदर सम्मिलित करना संभव है:[3]
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
HTML5 निम्नलिखित वाक्यविन्यास को भी बिल्कुल वही अर्थ देने की अनुमति देता है:[3]
<meta charset="utf-8">
XHTML दस्तावेज़ों में एक तीसरा विकल्प है: XML घोषणा के माध्यम से वर्ण एन्कोडिंग को व्यक्त करना, इस प्रकार:[4]
<?xml version="1.0" encoding="utf-8"?>
इस दूसरे दृष्टिकोण के साथ, क्योंकि घोषणा को पार्स किए जाने तक वर्ण एन्कोडिंग को नहीं जाना जा सकता है, इसलिए यह जानने में समस्या होती है कि दस्तावेज़ में घोषणा और कौन सा वर्ण एन्कोडिंग का उपयोग किया गया है। यदि वर्ण एन्कोडिंग एक ASCII विस्तार है तो घोषणा तक का विषय शुद्ध ASCI होना चाहिए और यह सही प्रकार से काम करता है। वर्ण एन्कोडिंग के लिए जो ASCII विस्तार नहीं हैं (अर्थात ASCII का अधिसमुच्चय नहीं), जैसे कि UTF-16BE और UTF-16LE, HTML का एक प्रोसेसर, जैसे कि वेब ब्राउज़र, कुछ प्रकरणो में ह्यूरिस्टिक्स के उपयोग के माध्यम से घोषणा को पार्स करने में सक्षम होना चाहिए।
एन्कोडिंग संसूचन एल्गोरिदम
HTML5 के अनुसार अनुशंसित चारसमुच्चय UTF-8 है।[3] इनपुट के कई स्रोतों के आधार पर दस्तावेज़ के वर्ण एन्कोडिंग को निर्धारित करने के लिए विनिर्देश में एक ''एन्कोडिंग स्नीफिंग एल्गोरिदम'' को परिभाषित किया गया है, जिसमें सम्मिलित हैं:
- स्पष्ट उपयोगकर्ता निर्देश
- दस्तावेज़ के पहले 1024 बाइट्स के अंतर्गत एक स्पष्ट मेटा टैग
- दस्तावेज़ के पहले तीन बाइट्स के अंतर्गत एक बाइट अनुक्रम मार्क (BOM)।
- HTTP विषय-प्रकार या अन्य परिवहन परत की जानकारी
- विशिष्ट अनुक्रमों या बाइट मानों की श्रेणियों और अन्य अस्थायी पहचान तंत्रों की दृष्टि में दस्तावेज़ बाइट्स का विश्लेषण।[5]
प्रिंट करने योग्य ASCII श्रेणी (32 से 126) के बाहर वर्ण विशिष्ट रूप से गलत प्रकार से दिखाई देते हैं। यह अंग्रेजी भाषा बोलने वाले उपयोगकर्ताओं के लिए कुछ समस्याएं प्रस्तुत करते है, लेकिन अन्य भाषाओं को नियमित रूप से—कुछ प्रकरणों में, हमेशा—उस सीमा के बाहर वर्णों की आवश्यकता होती है। चीनी, जापानी, और कोरियाई (सीजेके) भाषा परिवेश में जहां कई अलग-अलग बहु-बाइट एनकोडिंग हैं, स्वतः-संसूचन भी प्रायः नियोजित होता है। अंत में, ब्राउज़र विशिष्ट रूप से उपयोगकर्ता को गलत चारसमुच्चय लेबल मैन्युअल रूप से भी अध्यारोहण करने की अनुमति देते हैं।
बहुभाषी वेबसाइटों और गैर-पश्चिमी भाषाओं में वेबसाइटों के लिए UTF-8 का उपयोग करना सामान्य है, जो सभी भाषाओं के लिए समान एन्कोडिंग के उपयोग की अनुमति देता है। UTF-16 या UTF-32, जिनका उपयोग सभी भाषाओं के लिए भी किया जा सकता है, कम व्यापक रूप से उपयोग किए गए क्रमादेशन भाषाओं में संभालना कठिन हो सकता है जो बाइट-उन्मुख ASCII अधिसमुच्चय एन्कोडिंग मानते हैं, और वे ASCII वर्णों की एक उच्च आवृत्ति टेक्स्ट के साथ कम सक्षम हैं, जो विशिष्ट रूप से HTML दस्तावेज़ों के प्रकरण में होता है।
किसी पेज को सफलतापूर्वक देखना इस बात का संकेत नहीं है कि इसकी एन्कोडिंग सही प्रकार से निर्दिष्ट है। यदि पेज के निर्माता और पाठक दोनों कुछ प्लेटफ़ॉर्म-विशिष्ट वर्ण एन्कोडिंग मान रहे हैं, और सर्वर कोई पहचान संबंधी जानकारी नहीं भेजते है, तो पाठक फिर भी पेज को निर्माता के रूप में देखेगा, लेकिन विभिन्न प्लेटफार्मों पर या अलग-अलग मूल भाषाओं वाले अन्य पाठक पेज को उस तरह से नहीं देख पाएंगे जैसा कि सोचा गया था।
अनुमत एन्कोडिंग
HTML मानकों (वर्तमान WHATWG HTML जीवन स्तर, साथ ही पूर्व प्रतिस्पर्धी W3C HTML 5.0 और 5.1) द्वारा संदर्भित WHATWG एन्कोडिंग मानक, एन्कोडिंग की एक सूची निर्दिष्ट करता है जिसे ब्राउज़र को समर्थन करना चाहिए। HTML मानक अन्य एनकोडिंग के समर्थन को प्रतिबंधित करता हैं।[6][7][8] एन्कोडिंग मानक आगे यह निर्धारित करता है कि नए प्रारूप, नए प्रोटोकॉल (प्रचलित प्रारूपों का उपयोग किए जाने पर भी) और नए दस्तावेज़ों के लेखकों को UTF-8 का उपयोग करना आवश्यक है।[9]
UTF-8 के अलावा, एन्कोडिंग मानक के संदर्भ में निम्नलिखित एन्कोडिंग HTML मानक में स्पष्ट रूप से सूचीबद्ध हैं:[8]
- आईएसओ-8859-2
- आईएसओ-8859-7
- आईएसओ-8859-8
- विंडोज़-874[lower-alpha 1]
- विंडोज़-1250
- विंडोज़-1251
- विंडोज़-1252[lower-alpha 2]
- विंडोज़-1254[lower-alpha 3]
- विंडोज़-1255
- विंडोज़-1256
- विंडोज़-1257
- विंडोज़-1258
- जीबी18030[lower-alpha 4]
- बिग 5[lower-alpha 5]
- शिफ्ट JIS[lower-alpha 6]
- आईएसओ-2022-JP[lower-alpha 7]
- ईयूसी-केआर[lower-alpha 8]
- यूटीएफ-16बीई[lower-alpha 9]
- यूटीएफ-16एलई[lower-alpha 10]
- x-उपयोगकर्ता-परिभाषित[lower-alpha 11]
- ↑ Also specified for
TIS-620
,ISO-8859-11
and related labels.[9] - ↑ Also specified for
ASCII
,ISO-8859-1
and related labels.[9] - ↑ Also specified for
ISO-8859-9
and related labels.[9] - ↑ Specified with 0xA3A0 as a duplicate encoding of the ideographic space (U+3000) for compatibility reasons, and as such excluding U+E5E5 (a private use character).[10][11] Also, specified with 0x80 accepted as an alternative encoding of the euro sign (U+20AC; see Windows-936).[12] Otherwise, follows the mappings from the 2005 standard.[11]
- ↑ Hong Kong Supplementary Character Set variant, although most of the HKSCS extensions (those with lead bytes less than 0xA1) are not included by the encoder, only by the decoder.[13]
- ↑ The specification includes IBM and NEC extensions (see Windows-31J).[14]
- ↑ The specification uses the same index as used for Shift JIS (insofar as is within reach), i.e. includes NEC extensions. Half-width kana is converted to fullwidth by the encoder,[15] but accepted using an escape sequence (ESC 0x28 0x49) by the decoder.[16] Shift Out and Shift In (0x0E and 0x0F) are excluded entirely to prevent attacks.[16][17]
- ↑ Actually Unified Hangul Code, which is a superset which covers the entire Hangul Syllables block.[18]
- ↑ Specified for decoding only; form submissions from UTF-16-coded documents are to be encoded in UTF-8.[19]
- ↑ For compatibility with deployed content, also specified for the plain
UTF-16
label,[20] although a byte order mark (BOM), if present, takes priority over any label.[21] Specified for decoding only; form submissions from UTF-16-coded documents are to be encoded in UTF-8.[19] - ↑ Maps 0x00 through 0x7F to U+0000 through U+007F, and 0x80 through 0xFF to U+F780 through U+F7FF (a Private Use Area range), such that the low 8 bits of the code point always match the original byte.[22]
एनकोडिंग मानक में निम्नलिखित अतिरिक्त एनकोडिंग सूचीबद्ध हैं, और इसलिए उनके लिए समर्थन भी आवश्यक है:[9]
- ↑ Uses the same encoder and decoder as ISO-8859-8, but is not subject to the visual-order behaviour which is used for documents labelled as ISO-8859-8.[23]
- ↑ Titled KOI8-U and specified for both
KOI8-U
andKOI8-RU
labels,[9] but follows KOI8-RU (i.e. includes Ў/ў).[24][25] - ↑ Also specified for
GB2312
and related labels. Handled the same as GB 18030 for decoding purposes.[26] For encoding purposes, labelling as GBK (or GB 2312) excludes four-byte codes, and favours the one-byte 0x80 representation for U+20AC.[10] - ↑ The specification uses the same index as used for Shift JIS (insofar as is within reach of the EUC code set 1), i.e. includes NEC extensions. JIS X 0212 is included for decoding only.[27]
निम्नलिखित एनकोडिंग को निषिद्ध एनकोडिंग के स्पष्ट उदाहरण के रूप में सूचीबद्ध किया गया है:[8]
मानक एक "प्रतिस्थापन" विकोडक को भी परिभाषित करता है, जो प्रतिस्थापन वर्ण (�) में कुछ एन्कोडिंग के रूप में लेबल की गई सभी विषय को मानचित्र करता है, इसे संसाधित करने से मना करता है। इसका उद्देश्य उन आक्षेप (जैसे क्रॉस साइट स्क्रिप्टिंग) को रोकना है जो दुर्भावनापूर्ण विषय को छिपाने के लिए उपभोगता और सर्वर के मध्य समर्थित एन्कोडिंग में अंतर का लाभ उठा सकते हैं।[28] यद्यपि समान सुरक्षा चिंता ISO-2022-JP और UTF-16 पर उपयोजित होते है, जो ASCII बाइट्स के अनुक्रमों की अलग-अलग व्याख्या करने की भी अनुमति देते हैं, इस दृष्टिकोण को उनके लिए संभव नहीं देखा गया क्योंकि वे तुलनात्मक रूप से प्रसारित विषय में अधिक बार उपयोग किए जाते हैं।[29] निम्नलिखित एनकोडिंग इस उपचार को प्राप्त करते हैं:[30]
वर्ण संदर्भ
मूल वर्ण एन्कोडिंग के अलावा, वर्णों को वर्ण संदर्भों के रूप में भी एन्कोड किया जा सकता है, जो संख्यात्मक वर्ण संदर्भ (दशमलव या हेक्साडेसिमल) या वर्ण इकाई संदर्भ हो सकते हैं। वर्ण इकाई संदर्भों को कभी-कभी नामित इकाइयों या HTML के लिए HTML इकाइयाँ भी कहा जाता है। HTML के वर्ण संदर्भों का उपयोग SGML से हुआ है।
HTML वर्ण संदर्भ
HTML में एक संख्यात्मक वर्ण संदर्भ उसके सार्वभौमिक संप्रतीक समुच्चय/यूनिकोड कोड बिंदु द्वारा एक वर्ण को संदर्भित करता है, और प्रारूप का उपयोग करता है।
&#nnnn;
या
&#xhhhh;
जहाँ nnnn दशमलव रूप में कोड बिंदु है, और hhhh हेक्साडेसिमल रूप में कोड बिंदु है। XML दस्तावेजों में x को लोवरकेस होना चाहिए। nnnn या hhhh किसी भी संख्या में अंक हो सकते हैं और इसमें अग्रणी शून्य सम्मिलित हो सकते हैं। hhhh अपरकेस और लोवरकेस को मिला सकता है, हालांकि अपरकेस सामान्य शैली है।
HTML दस्तावेज़ों के प्राप्तकर्ता द्वारा उपयोग किए जाने वाले सभी वेब ब्राउज़र या ईमेल उपभोगता, या HTML दस्तावेज़ों के लेखकों द्वारा उपयोग किए जाने वाले टेक्स्ट संपादक, सभी HTML वर्णों को प्रस्तुत करने में सक्षम नहीं होते है। अधिकांश आधुनिक सॉफ़्टवेयर उपयोगकर्ता की भाषा के लिए अधिकांश या सभी वर्णों को प्रदर्शित करने में सक्षम होते हैं, और उन वर्णों के लिए एक बॉक्स या अन्य स्पष्ट संकेतक बनाते हैं जिन्हें वे प्रस्तुत नहीं कर सकते।
0 से 127 तक के कोड के लिए, मूल 7-बिट ASCII मानक समुच्चय, इनमें से अधिकांश वर्णों का उपयोग वर्ण संदर्भ के बिना किया जा सकता है। 160 से 255 तक के सभी कोड वर्ण इकाई संदर्भों की सूची का उपयोग करके बनाए जा सकते हैं। इकाई नामों का उपयोग करके केवल कुछ उच्च संख्या वाले कोड बनाए जा सकते हैं, लेकिन सभी दशमलव संख्या वर्ण संदर्भ द्वारा बनाए जा सकते हैं।
वर्ण इकाई संदर्भों का प्रारूप &name
भी हो सकता है; जहाँ नाम एक प्रकरण-संवेदी अक्षरांकीय स्ट्रिंग है। उदाहरण के लिए, ''λ'' को HTML दस्तावेज़ में &lambda
के रूप में भी एन्कोड किया जा सकता है। वर्ण इकाई संदर्भ <
, >
, "
और &
HTML और SGML में पूर्वनिर्धारित हैं, क्योंकि <
, >
, "
और &
का उपयोग पहले से ही मार्कअप को सीमित करने के लिए किया जाता है। इसमें विशेष रूप से XML का &apos
सम्मिलित नहीं हैं; (') HTML5 से पहले की इकाई में सम्मिलित नहीं हैं। सभी नामित HTML वर्ण इकाई संदर्भों की सूची के साथ-साथ उन संस्करणों की सूची के लिए जिनमें वे प्रस्तावित किए गए थे, XML और HTML वर्ण इकाई संदर्भों की सूची देखें।
HTML वर्ण संदर्भों का अनावश्यक उपयोग HTML पठनीयता को महत्वपूर्ण रूप से कम कर सकता है। यदि किसी वेब पेज के लिए वर्ण एन्कोडिंग उचित रूप से चयन किया गया है, तो HTML वर्ण संदर्भ विशिष्ट रूप से केवल ऊपर बताए गए मार्कअप विसीमक वर्णों के लिए आवश्यक होते हैं, और कुछ विशेष वर्णों के लिए (या बिल्कुल नहीं, यदि UTF-8 जैसे मूल यूनिकोड एन्कोडिंग का उपयोग किया जाता है) होते हैं। गलत HTML इकाई से बचने से क्रॉस साइट स्क्रिप्टिंग जैसे अंतःक्षेपी अटैक के लिए सुरक्षा भेद्यताएं भी खुल सकती हैं। यदि HTML विशेषताओं को बिना कोट किए छोड़ दिया जाता है, तो कुछ वर्ण, सबसे महत्वपूर्ण व्हाइटस्पेस वर्ण, जैसे कि स्पेस और टैब, को इकाई का उपयोग करके बचाना चाहिए। HTML से संबंधित अन्य भाषाओं में वर्णों से बचने के अपने प्रकार हैं।
XML वर्ण संदर्भ
वर्ण इकाई संदर्भों की बड़ी श्रृंखला के साथ पारंपरिक HTML के विपरीत, XML में केवल पाँच पूर्वनिर्धारित वर्ण इकाई संदर्भ हैं। इनका उपयोग उन वर्णों से बचने के लिए किया जाता है जो कुछ संदर्भों में मार्कअप संवेदक होते हैं:[31]
&
→ & (एम्परसेंड, U+0026)<
→ < (इससे कम चिह्न, U+003C)>
→ > (इससे अधिक चिह्न, U+003E)"
→ (उद्धरण चिह्न, U+0022)'
→ ' (लोपचिह्न, U+0027)
अन्य सभी वर्ण इकाई संदर्भों को उपयोग किए जाने से पहले परिभाषित करते है। उदाहरण के लिए, é का उपयोग
(जो एक XML दस्तावेज़ में é, तीव्र उच्चारण के साथ लैटिन लोअर-केस E, यूनिकोड में U+00E9 देता है) एक त्रुटि उत्पन्न करेगा जब तक कि इकाई को पहले से ही परिभाषित नहीं किया है। XML के लिए यह भी आवश्यक है कि हेक्साडेसिमल संख्यात्मक संदर्भ में x
लोअरकेस में हों: उदाहरण के लिए ਛ
के बदले ਛ है।
XHTML, जो एक XML अनुप्रयोग है, XML की पूर्वनिर्धारित इकाइयों के साथ HTML इकाई समुच्चय का समर्थन करता है।
यह भी देखें
- चारसमुच्चय सूँघना - कई ब्राउज़रों द्वारा उपयोग किया जाता है जब वर्ण एन्कोडिंग मेटाडेटा उपलब्ध नहीं होता है
- यूनिकोड और HTML
- भाषा कोड
- XML और HTML वर्ण इकाई संदर्भों की सूची
संदर्भ
- ↑ Fielding, R.; Reschke, J. (June 2014), "Content-Type", in Fielding, R; Reschke, J (eds.), Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content, IETF, doi:10.17487/RFC7231, S2CID 14399078, retrieved 2014-07-30
- ↑ "Apache Module mod_charset_lite".
- ↑ 3.0 3.1 3.2 "Specifying the document's character encoding", HTML5, World Wide Web Consortium, 14 December 2017, retrieved 2018-05-28
- ↑ Bray, T.; Paoli, J.; Sperberg-McQueen, C.; Maler, E.; Yergeau, F. (26 November 2008), "Prolog and Document Type Declaration", XML, W3C, retrieved 8 March 2010
- ↑ "HTML5 prescan a byte stream to determine its encoding".
- ↑ "8.2.2.3. Character encodings". HTML 5.1 Standard. W3C.
- ↑ "8.2.2.3. Character encodings". HTML 5 Standard. W3C.
- ↑ 8.0 8.1 8.2 "12.2.3.3 Character encodings". HTML Living Standard. WHATWG.
- ↑ 9.0 9.1 9.2 9.3 9.4 9.5 van Kesteren, Anne. "4.2: Names and labels". Encoding Standard. WHATWG.
- ↑ 10.0 10.1 van Kesteren, Anne. "10.2.2. gb18030 encoder". Encoding Standard. WHATWG.
- ↑ 11.0 11.1 van Kesteren, Anne. "5. Indexes (§ index gb18030)". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "10.2.1. gb18030 decoder". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "5. Indexes (§ index Big5 pointer)". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "5. Indexes (§ Index jis0208)". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "5. Indexes (§ Index ISO-2022-JP katakana)". Encoding Standard. WHATWG.
- ↑ 16.0 16.1 van Kesteren, Anne. "12.2.1. ISO-2022-JP decoder". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "12.2.2. ISO-2022-JP encoder". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "5. Indexes (§ index EUC-KR)". Encoding Standard. WHATWG.
- ↑ 19.0 19.1 van Kesteren, Anne. "4.3. Output encodings". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "14.4. UTF-16LE". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "6. Hooks for standards (§ decode)". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "14.5. x-user-defined". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "9. Legacy single-byte encodings (§ Note)". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "index KOI8-U visualization". Encoding Standard. WHATWG.
- ↑ "Bug 17053: Support KOI8-RU mapping for KOI8-U". W3C Bugzilla. 2015-08-19.
- ↑ van Kesteren, Anne. "10.1. GBK". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "5. Indexes (§ Index jis0212)". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "14.1: replacement". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "2: Security background". Encoding Standard. WHATWG.
- ↑ van Kesteren, Anne. "4.2: Names and labels (§ replacement)". Encoding Standard. WHATWG.
- ↑ Bray, T.; Paoli, J.; Sperberg-McQueen, C.; Maler, E.; Yergeau, F. (26 November 2008), "Character and Entity References", XML, W3C, retrieved 8 March 2010
बाहरी संबंध
- Online HTML entity encoder & decoder tool
- Character entity references in HTML4
- The Definitive Guide to Web Character Encoding
- HTML Entity Encoding chapter of Browser Security Handbook – more information about current browsers and their entity handling
- The Open Web Application Security Project's wiki article on cross-site scripting (XSS)