HTML एंटिटी एनकोडर और डिकोडर
जिन कैरेक्टर को HTML मार्कअप मानता है, उन्हें एस्केप करें, चाहें तो हर non-ASCII कैरेक्टर को भी, या é और — जैसी एंटिटी को वापस सादे टेक्स्ट में बदलें। दोनों काम आपके ब्राउज़र में होते हैं, और डिकोड किया गया इनपुट कभी लाइव HTML की तरह रेंडर नहीं होता।
0 अक्षर · 0 शब्द · 0 पंक्तियाँ
0 अक्षर · 0 शब्द · 0 पंक्तियाँ
यह पूरी तरह इसी ब्राउज़र टैब में चलता है। आपका टेक्स्ट न अपलोड होता है, न सेव किया जाता है।
आम अक्षर और उनकी एंटिटी
नामित, दशमलव और हेक्साडेसिमल रूप सब एक ही अक्षर में डीकोड होते हैं। एन्कोडर 216 आम नामित एंटिटी जानता है; डीकोडर HTML मानक के हर नामित रेफ़रेंस को समझता है।
| अक्षर | नामित | दशमलव | हेक्स |
|---|---|---|---|
& | & | & | & |
< | < | < | < |
> | > | > | > |
" | " | " | " |
' | ' | ' | ' |
(नो-ब्रेक स्पेस) | |   |   |
© | © | © | © |
® | ® | ® | ® |
™ | ™ | ™ | ™ |
€ | € | € | € |
£ | £ | £ | £ |
¥ | ¥ | ¥ | ¥ |
— | — | — | — |
– | – | – | – |
… | … | … | … |
« | « | « | « |
» | » | » | » |
° | ° | ° | ° |
× | × | × | × |
÷ | ÷ | ÷ | ÷ |
é | é | é | é |
π | π | π | π |
→ | → | → | → |
😀 | — | 😀 | 😀 |
HTML 4 की 252 एंटिटी से HTML5 की 2,231 एंटिटी तक
कैरेक्टर रेफ़रेंस किसी कैरेक्टर को सिर्फ़ ASCII में लिखने का तरीका है। न्यूमेरिक रेफ़रेंस किसी भी Unicode कोड पॉइंट के लिए काम करते हैं, दशमलव (é) या हेक्साडेसिमल (é) में। नेम्ड रेफ़रेंस याद रखने में आसान होते हैं: HTML 4 में ऐसे 252 नाम तय थे, जिनमें é जैसे Latin-1 अक्षर, ग्रीक अक्षर, गणितीय चिह्न और — व … जैसे टाइपोग्राफ़िक चिह्न शामिल हैं। दिलचस्प बात यह है कि ' उनमें नहीं था; यह XML से आया और HTML5 में ही वैध HTML बना।
HTML5 ने MathML एंटिटी सेट को शामिल करके नेम्ड कैरेक्टर रेफ़रेंस की सूची बढ़ाकर 2,231 कर दी, इसलिए ✓, ★ और ≂̸ जैसे नाम अब हर मौजूदा ब्राउज़र में चलते हैं। इस गिनती में बिना अंतिम सेमीकोलन वाली पुरानी वर्तनी भी शामिल है, जैसे & और © पार्सर संगतता के लिए इन्हें अब भी मान लेते हैं, पर आपको इन्हें लिखना नहीं चाहिए। यहाँ का एन्कोडर व्यापक रूप से समर्थित HTML 4 नामों के साथ ' देता है और बाकी सबके लिए न्यूमेरिक रेफ़रेंस इस्तेमाल करता है; डिकोडर टेक्स्ट को ब्राउज़र के अपने पार्सर को सौंपता है, इसलिए वह सभी 2,231 नाम समझता है।
क्या एस्केप करें, और कहाँ सिर्फ़ एस्केप करना काफ़ी नहीं है
Only & < > " ' रोज़मर्रा के काम की सेटिंग है: यह उन पाँच कैरेक्टर को एस्केप करती है जो टेक्स्ट नोड या कोट वाले एट्रिब्यूट को खत्म कर सकते हैं। पेज पर कोड सैंपल दिखाने या यूज़र का टेक्स्ट HTML में सुरक्षित रखने के लिए इतना काफ़ी है। Also every non-ASCII character é, € और इमोजी को भी रेफ़रेंस में बदल देती है, उन दुर्लभ चैनलों के लिए जो UTF-8 नहीं ले जा सकते, जैसे कुछ पुराने ईमेल टेम्पलेट या एन्कोडिंग बिगाड़ने वाले सिस्टम। Named, Decimal और Hex सिर्फ़ रेफ़रेंस की वर्तनी बदलते हैं; तीनों एक ही कैरेक्टर में डिकोड होते हैं। UTF-8 में सेव किए पेज को accent वाले अक्षरों के लिए एंटिटी की ज़रूरत नहीं होती।
एस्केपिंग सिर्फ़ HTML संदर्भ को सुरक्षित करती है, और कुछ नहीं। script ब्लॉक, onclick जैसे इनलाइन इवेंट हैंडलर, style एट्रिब्यूट या javascript: से शुरू हो सकने वाले href में डाले गए टेक्स्ट को अलग तरह से संभालना पड़ता है, और वहाँ सिर्फ़ एंटिटी एन्कोडिंग क्रॉस-साइट स्क्रिप्टिंग नहीं रोकती। React जैसे फ्रेमवर्क टेक्स्ट को डिफ़ॉल्ट रूप से एस्केप करते हैं, इसलिए आधुनिक ऐप्स में डबल-एस्केपिंग ज़्यादा आम बग है: जहाँ एम्परसैंड दिखना चाहिए वहाँ यूज़र को & दिखता है। टैग पूरी तरह हटाने के लिए मार्कअप को HTML से TXT में बदलें; URL के अंदर एस्केपिंग के लिए URL एन्कोड और डिकोड इस्तेमाल करें।
अक्सर पूछे जाने वाले सवाल
- HTML में किन कैरेक्टर को एस्केप करना ज़रूरी है?
- टेक्स्ट में & और < ज़रूरी हैं, और > को परंपरा के तौर पर एस्केप किया जाता है। एट्रिब्यूट वैल्यू के अंदर उस कोट कैरेक्टर को भी एस्केप करें जो उसे घेरता है। पाँचों को एस्केप करने से दोनों स्थितियाँ कवर हो जाती हैं।
- और सामान्य स्पेस में क्या अंतर है?
नो-ब्रेक स्पेस है, U+00A0। यह स्पेस जैसा दिखता है, पर उस जगह लाइन ब्रेक नहीं होने देता और HTML के सामान्य स्पेस की तरह कई एक साथ आने पर सिकुड़ता नहीं।- मेरे पेज पर ऐम्परसैंड की जगह & क्यों दिखता है?
- टेक्स्ट दो बार एस्केप हो गया: एक बार आपके डेटा में और दोबारा आपके टेम्पलेट या फ्रेमवर्क से। कच्चा टेक्स्ट ही सेव करें और आउटपुट के समय एक ही लेयर, आमतौर पर टेम्पलेट, को एस्केप करने दें।
- क्या किसी अनजान स्रोत का HTML यहाँ डिकोड करना सुरक्षित है?
- हाँ। डिकोडर इनपुट को सादे टेक्स्ट कंटेंट की तरह पार्स करता है, इसलिए टैग नहीं बनते, स्क्रिप्ट नहीं चलतीं और इमेज लोड नहीं होतीं। सिर्फ़ एंटिटी रेफ़रेंस कैरेक्टर में बदले जाते हैं।
- नामित एंटिटी बेहतर हैं या न्यूमेरिक?
- नेम्ड रेफ़रेंस पढ़ने में आसान होते हैं, जबकि न्यूमेरिक हर कैरेक्टर और हर XML पार्सर में काम करते हैं। DTD के बिना XML में सिर्फ़
&,<,>,"और'पहले से परिभाषित हैं।