HTML एन्टिटी एन्कोड / डिकोड
एन्कोडिंगHTML एन्टिटीज़ एन्कोड और डिकोड करें — नामित, दशमलव और हेक्साडेसिमल।
इस पृष्ठ पर
HTML एन्टिटी एन्कोडिंग क्या है?#
HTML मुट्ठी भर कैरेक्टरों को विशेष अर्थ देता है: < और > टैग सीमांकित करते हैं, & किसी एन्टिटी या कैरेक्टर संदर्भ को शुरू करता है, और " और ' एट्रिब्यूट वैल्यूज़ को कोट करते हैं। जब भी आप चाहते हैं कि उनमें से कोई एक कैरेक्टर पेज पर शाब्दिक टेक्स्ट के रूप में दिखे — यूज़र्स को किसी कोड स्निपेट का स्रोत दिखाना, खोज इनपुट को फ़ील्ड में वापस इको करना, Tom & Jerry स्ट्रिंग दिखाना — आपको उसे एक एन्टिटी नामक स्टैंड-इन से बदलना पड़ता है। वह प्रतिस्थापन HTML एन्टिटी एन्कोडिंग है।
उसी एस्केप को लिखने के तीन तरीके हैं, और यह औज़ार तीनों को विकल्प चयनक के ज़रिए देता है:
- नामित —
&&बन जाता है,<<, और इसी तरह। मानव-पठनीय, और एकमात्र रूप जो लोग आमतौर पर हाथ से टाइप करते हैं। इस मोड में केवल पाँच संरचनात्मक रूप से खतरनाक कैरेक्टर एस्केप होते हैं; बाकी सब वैसे ही गुज़रता है। - दशमलव — हर नॉन-ASCII या कंट्रोल कैरेक्टर
&#N;बन जाता है, जहाँNदशमलव में उसका Unicode कोड पॉइंट है (जैसे©©बनता है)। अच्छा जब आप चाहते हैं कि हर गैर-मानक बाइट दृश्य और ASCII-सुरक्षित हो। - हेक्स — हेक्साडेसिमल कोड पॉइंट्स के साथ वही विचार:
©©बनता है। संक्षिप्त और उस कोड-पॉइंट नोटेशन के साथ स्वाभाविक रूप से मेल खाता है जो आप Unicode तालिकाओं में देखते हैं।
डिकोडिंग एक चयनित HTML5 उपसमुच्चय में नामित एन्टिटीज़ को पहचानती है, साथ ही &#NN; (दशमलव) और &#xHH; (हेक्स)। कोई अपरिचित नामित एन्टिटी अनुमान लगाने के बजाय वैसे ही रहती है — चुपचाप गलत कैरेक्टर निकालने से सुरक्षित।
इसका उपयोग कैसे करें#
- ऊपर-बाईं ओर टॉगल से एन्कोड या डिकोड चुनें।
- विकल्प के अंतर्गत, नामित, दशमलव, या हेक्स चुनें।
- बाईं ओर इनपुट पैनल में चिपकाएँ।
- दाईं ओर आउटपुट पैनल से एस्केप (या अनएस्केप) किया परिणाम पढ़ें और कॉपी पर क्लिक करें।
- नमूना एक प्रदर्शन स्ट्रिंग लोड करता है; साफ़ करें पैनलों को रीसेट करता है।
प्रमुख विशेषताएँ#
- एक चयनक से तीन एस्केप शैलियाँ। बिना दोबारा चिपकाए नामित, दशमलव, और हेक्स के बीच स्विच करें, जो आउटपुट की तुलना तुच्छ बनाता है।
- अस्ट्रल-कैरेक्टर सही। पुनरावृत्ति UTF-16 कोड यूनिट नहीं बल्कि Unicode कोड पॉइंट द्वारा होती है, इसलिए
🌍जैसा इमोज़ी एक कैरेक्टर (🌍) माना जाता है, न कि सरोगेट्स का एक टूटा हुआ जोड़ा। - चयनित, सुरक्षित डिकोडर। नामित-एन्टिटी मान्तव्य आम HTML5 संदर्भों (कॉपीराइट, ट्रेडमार्क, एक्सेंटेड अक्षर, गणित चिह्न, कोट्स और डैश) को कवर करता है। अज्ञात नाम बिगड़ने के बजाय वैसे ही गुज़रते हैं।
- कोई DOM शामिल नहीं। एन्कोडिंग और डिकोडिंग शुद्ध स्ट्रिंग काम हैं — कोई छिपा हुआ
<div>इंजेक्शन नहीं — इसलिए लॉजिक पूरी तरह टेस्ट करने योग्य है और औज़ार खुद आपके इनपुट को मार्कअप के रूप में इंटरप्रेट करने का कोई जोखिम नहीं है।
कार्य उदाहरण#
एक फ़्रैगमेंट लें जो मार्कअप को एक शाब्दिक चिह्न के साथ मिलाता है:
<a href="x">Tom & Jerry</a> © 2026
नामित मोड में, केवल पाँच खतरनाक कैरेक्टर एस्केप होते हैं और © वैसे ही छोड़ दिया जाता है (वह संरचनात्मक रूप से खतरनाक नहीं):
<a href="x">Tom & Jerry</a> © 2026
दशमलव पर स्विच करें और © भी अपना कोड पॉइंट ले लेता है, जबकि मुख्य कैरेक्टर न्यूमेरिक रूप में बदल जाते हैं:
<a href="x">Tom & Jerry</a> © 2026
हेक्स मोड में वही कैरेक्टर हेक्साडेसिमल कोड पॉइंट्स के रूप में दिखते हैं:
<a href="x">Tom & Jerry</a> © 2026
डिकोडिंग इन सभी को उलटती है: तीनों आउटपुट में से किसी को भी डिकोड चुनकर वापस चिपकाएँ और आपको मूल फ़्रैगमेंट मिलता है, © सहित।
अक्सर पूछे जाने वाले प्रश्न#
किसी स्ट्रिंग को HTML के अंदर सुरक्षित रखने के लिए मुझे कौन सा मोड उपयोग करना चाहिए?#
पाँच खतरनाक कैरेक्टरों के लिए नामित लगभग हमेशा सही डिफ़ॉल्ट है — यह पढ़ने योग्य है, हर ब्राउज़र द्वारा अच्छी तरह समझा जाता है, और आउटपुट को डिफ़-अनुकूल रखता है। दशमलव या हेक्स का सहारा तभी लें जब आपको विशेष रूप से हर नॉन-ASCII कैरेक्टर को ASCII-सुरक्षित बनाना हो (जैसे किसी ऐसे ट्रांसपोर्ट के लिए सामग्री तैयार करना जो उच्च बाइट अस्वीकार करता है), सामान्य एस्केपिंग के लिए नहीं।
मैंने © डिकोड किया पर &mytag; जैसा कोई अजीब नाम अपरिवर्तित निकला। क्यों?#
डिकोडर केवल उन एन्टिटीज़ को हल करता है जिन्हें वह वास्तव में जानता है — आम नामों का एक चयनित HTML5 उपसमुच्चय। &mytag; कोई वास्तविक HTML एन्टिटी नहीं है, इसलिए औज़ार अनुमान लगाने या गिराने के बजाय उसे वैसे ही छोड़ देता है। यदि आपको सच में हर DTA-परिभाषित एन्टिटी हल करनी है, तो आप एक स्ट्रिंग कन्वर्टर के दायरे से बाहर और वास्तविक HTML पार्सिंग में हैं।
क्या HTML-एस्केपिंग किसी JavaScript स्ट्रिंग या URL में यूज़र इनपुट को सुरक्षित बनाने के लिए पर्याप्त है?#
नहीं। प्रत्येक संदर्भ के अपने नियम हैं। HTML एस्केपिंग मार्कअप इंजेक्ट करने से बचाता है, पर '); alert(1); // जैसी स्ट्रिंग HTML में हानिरहित है और <script> के अंदर खतरनाक। वही इनपुट किसी लिंक में जाने से पहले URL-एन्कोडिंग की भी ज़रूरत है। गंतव्य संदर्भ के लिए एस्केप करें, सिर्फ़ एक बार नहीं।
हेक्स आउटपुट लोअर-केस अक्षर क्यों उपयोग करता है (© न कि ©)?#
लोअर-केस हेक्स परंपरागत, साफ़-सुथरा रूप है और हर ब्राउज़र द्वारा समान रूप से पार्स होता है। यदि आपको किसी स्टाइल गाइड के लिए अपर-केस चाहिए, तो दशमलव मोड (©) सवाल को पूरी तरह टाल देता है, या आउटपुट को अपने केस ट्रांसफ़ॉर्म से गुज़ारें।