URL एन्कोडर/डिकोडर क्या है?

URL एनकोडर/डिकोडर URL में विशेष कैरेक्टर को उनके प्रतिशत-एन्कोडेड रूप में और वापस कन्वर्ट करता है। क्वेरी स्ट्रिंग, API पैरामीटर या स्पेस और विशेष कैरेक्टर वाले URL के साथ काम करते समय उपयोगी है।

चार एनकोडिंग मोड दिए गए हैं। Component मोड (encodeURIComponent) हर आरक्षित वर्ण को, यहाँ तक कि स्लैश और & को भी, एस्केप करता है—यह क्वेरी मान के अंदर सही है। Full URL मोड (encodeURI) संरचनात्मक वर्णों को नहीं छेड़ता ताकि पूरा पता पार्स हो सके। फ़ॉर्म डेटा मोड application/x-www-form-urlencoded भेजने के लिए रिक्त स्थान को + में बदलता है। RFC 3986 सख़्त मोड एक कदम आगे जाकर !'()* को भी एस्केप करता है—ये वे उप-सीमांकक हैं जिन्हें encodeURIComponent छोड़ देता है, इसलिए आउटपुट किसी भी मानक-अनुरूप URL में सुरक्षित रहता है। Auto-detect %XX अनुक्रमों की जाँच कर सही दिशा चुन लेता है, लाइव चालू करने पर टाइप करते ही रूपांतरण दोबारा चलता है, पुनरावर्ती डिकोड दो या तीन बार एनकोड किए मानों को पूरी तरह खोल देता है, और तुलना पैनल एक ही इनपुट को चारों मोड में एक साथ एनकोड करके दिखाता है।

उपयोग कैसे करें

  1. इनपुट फ़ील्ड में एक URL या टेक्स्ट स्ट्रिंग पेस्ट करें।
  2. विशेष कैरेक्टर को प्रतिशत-एन्कोडेड रूप में बदलने के लिए Encode पर क्लिक करें, या वापस बदलने के लिए Decode पर।
  3. परिणाम को क्लिपबोर्ड पर कॉपी करें या इनपुट/आउटपुट स्वैप करने के लिए स्वैप बटन का उपयोग करें।

कब उपयोग करें

  • हाथ से क्वेरी स्ट्रिंग बनाते समय स्पेस, & और = को सावधानी से एस्केप करना।
  • पर्सेंट-एनकोडेड सर्वर लॉग की पंक्ति को पढ़ने योग्य पाठ में बदलना।
  • ASCII से बाहर के वर्ण वाले विदेशी URL को सादे पाठ ईमेल में बिना टूटे चिपकाना।

परिणाम

एक डेवलपर क्वेरी स्ट्रिंग पैरामीटर में उपयोग के लिए "hello world&foo=bar" को "hello%20world%26foo%3Dbar" में एनकोड करता है।

अक्सर पूछे जाने वाले प्रश्न

encodeURI और encodeURIComponent में क्या फ़र्क़ है?
encodeURI संरचनात्मक चिह्न /, ?, & और = को नहीं बदलता ताकि पूरी URL काम करती रहे। encodeURIComponent इन सभी को एस्केप करता है, जो तब उचित है जब पाठ क्वेरी के ? के बाद आने वाला एकल पैरामीटर मान हो।
मेरी डिकोड की हुई स्ट्रिंग में अभी भी %20 क्यों है?
या तो स्रोत दोहरे एनकोडिंग में था (एक बार डिकोड करने पर अभी भी एनकोडेड स्ट्रिंग बनेगी), या यह फ़ॉर्म-एनकोडेड डेटा है जहाँ + का अर्थ स्पेस होता है। दो बार डिकोड करें या डिकोड करने से पहले + को स्पेस से बदलें।
बिना एनकोडिंग के URL में कौन-से वर्ण रखे जा सकते हैं?
अनारक्षित वर्ण: A–Z, a–z, 0–9 और चार चिह्न—हाइफ़न, अंडरस्कोर, बिंदु और टिल्ड। बाक़ी सब, स्पेस, ASCII से बाहर के अक्षर और उस स्थान पर सिंटैक्स-भूमिका रहित आरक्षित वर्ण—सबको प्रतिशत-एनकोड करना आवश्यक है।
एक ही स्ट्रिंग को दो बार एनकोड करने से वह बिगड़ती है क्या?
हाँ। दोहरी एनकोडिंग हर % को %25 में बदल देती है, और मूल पाने के लिए दो बार डिकोड करना पड़ता है। अगर आप किसी ऐसे सिस्टम का मान जोड़ रहे हैं जो पहले से एनकोडेड हो सकता है, तो उसे पहले एक बार डिकोड करें या स्थिति का ध्वज रखें।
क्या उपकरण हिंदी या अरबी जैसे यूनिकोड वर्णों का समर्थन करता है?
हाँ। ब्राउज़र की अंतर्निहित encodeURIComponent किसी भी वर्ण को पहले UTF-8 बाइट क्रम में बदलती है और फिर प्रत्येक बाइट को प्रतिशत-एनकोड कर देती है। डिकोडिंग उल्टी प्रक्रिया है, इसलिए 'café' भाषा परवाह किए बिना 'caf%C3%A9' के रूप में राउंड-ट्रिप करता है।

संबंधित उपकरण