HTML एंटिटी एनकोडर / डिकोडर

स्पेशल कैरेक्टर्स को HTML एंटिटीज़ में एस्केप करें, या एंटिटीज़ को वापस प्लेन टेक्स्ट में डिकोड करें, टाइप करते ही लाइव।

सभी नॉन-ASCII कैरेक्टर एनकोड करें
सिर्फ़ < > & " ' ही नहीं, एक्सेंटेड लेटर और इमोजी को भी एस्केप करता है।

HTML एंटिटीज़ क्यों मौजूद हैं

कुछ कैरेक्टर्स ख़ुद HTML द्वारा रिज़र्व्ड हैं।

<, >, और & जैसे कैरेक्टर्स का HTML मार्कअप में ख़ास मतलब होता है, पेज कंटेंट के अंदर इन्हें लिटरली टाइप करने से पेज टूट सकता है, या इससे भी बुरा, यूज़र इनपुट को एक्ज़ीक्यूटेबल मार्कअप के रूप में इंटरप्रेट किया जा सकता है। इन्हें &lt; जैसी एंटिटीज़ के रूप में एनकोड करने से कैरेक्टर सेफ़ली प्लेन टेक्स्ट के रूप में दिखता है।

नेम्ड बनाम न्यूमेरिक एंटिटीज़

&amp; और &#38; दोनों एक ही एम्परसैंड में डिकोड होते हैं, नेम्ड एंटिटीज़ आम कैरेक्टर्स के लिए होती हैं, न्यूमेरिक एंटिटीज़ (डेसिमल या हेक्स) किसी भी यूनिकोड कैरेक्टर को रिप्रज़ेंट कर सकती हैं। यह टूल दोनों फ़ॉर्म को डिकोड करता है।

यह कैसे काम करता है

एनकोडिंग एक सीधा सा सब्स्टिट्यूशन है: एक रेगेक्स पांच HTML-रिज़र्व्ड कैरेक्टर्स (&, <, >, ", ') को उनकी एंटिटीज़ से बदल देता है। "सभी नॉन-ASCII कैरेक्टर एनकोड करें" ऑप्शन आगे जाकर codePointAt का इस्तेमाल करते हुए ASCII रेंज से ऊपर के हर कैरेक्टर को एक न्यूमेरिक रेफ़रेंस में बदल देता है, यह तब काम आता है जब आउटपुट को किसी पुराने ईमेल टेम्पलेट सिस्टम या UTF-8 को ख़राब कर देने वाली कॉन्फ़िग फ़ाइल जैसे ASCII-ओनली पाइपलाइन से गुज़रना हो।

डिकोडिंग एक ऐसी ट्रिक इस्तेमाल करती है जो जानने लायक है: स्ट्रिंग को एक डिटैच्ड <textarea> के innerHTML में असाइन किया जाता है, फिर उसके .value से वापस पढ़ा जाता है। इससे काम ब्राउज़र के अपने HTML पार्सर को सौंप दिया जाता है, जो पहले से ही 2,000 से ज़्यादा नेम्ड एंटिटीज़ के साथ-साथ हर डेसिमल और हेक्स न्यूमेरिक फ़ॉर्म को जानता है, इसलिए टूल कोई लुकअप टेबल शिप नहीं करता जो पुरानी पड़ सकती है। यही वजह है कि यहां अनट्रस्टेड इनपुट को डिकोड करना सेफ़ है: टेक्स्टएरिया का कंटेंट हमेशा प्लेन टेक्स्ट के रूप में ट्रीट होता है, इसलिए डिकोड किया गया &lt;script&gt; एक स्क्रिप्ट टैग के टेक्स्ट में बदल जाता है, और कुछ भी एक्ज़ीक्यूट नहीं होता।

दोनों दिशाएं इस पेज के JavaScript के अंदर हर कीस्ट्रोक पर चलती हैं। टाइप करते समय डेवटूल्स का Network टैब खोलें: कोई रिक्वेस्ट नहीं होती, आपका मार्कअप कभी ब्राउज़र से बाहर नहीं जाता।