मुफ्त कनवर्टर

URL एन्कोडर / डिकोडर

अपने ब्राउज़र में तुरंत URL और URI घटकों को एन्कोड और डिकोड करें। मुफ़्त, निजी और कोई अपलोड की आवश्यकता नहीं।

या

इस टूल के बारे में

यूआरएल एन्कोडिंग (औपचारिक रूप से प्रतिशत-एन्कोडिंग, आरएफसी 3986 में परिभाषित) उन वर्णों का अनुवाद करता है जिनके यूआरएल में विशेष अर्थ हैं - रिक्त स्थान, स्लैश, एम्परसेंड, हैश अंक - हेक्स अंकों के बाद प्रतिशत संकेतों का उपयोग करके एक सुरक्षित रूप में। स्पेस कैरेक्टर %20 (या + फॉर्म-एन्कोडेड संदर्भों में) बन जाता है, एम्परसेंड %26 बन जाता है, और इसी तरह। इस एन्कोडिंग के बिना, विशेष वर्णों की व्याख्या शाब्दिक डेटा के बजाय यूआरएल सिंटैक्स के रूप में की जाएगी, जो यूआरएल को तोड़ देगा या अनपेक्षित व्यवहार का कारण बनेगा।

दो संबंधित लेकिन अलग एन्कोडिंग मौजूद हैं। मानक यूआरएल घटक एन्कोडिंग अनारक्षित वर्ण सेट के बाहर हर चीज के लिए %-एस्केप का उपयोग करता है: ए-जेड, ए-जेड, 0-9, हाइफ़न, अंडरस्कोर, अवधि, टिल्ड। फॉर्म-एनकोडेड वैरिएंट (एप्लिकेशन/x-www-form-urlencoded) अतिरिक्त रूप से रिक्त स्थान को प्लस चिह्न के रूप में मानता है और कुछ अन्य वर्णों के लिए अलग-अलग नियमों का उपयोग करता है। JavaScript का encodeURIComponent सख्त घटक एन्कोडिंग का उपयोग करता है; एनकोडयूआरआई एक अधिक अनुमेय फॉर्म का उपयोग करता है जो यूआरएल संरचना वर्णों को संरक्षित करता है।

यह टूल एन्कोडिंग और डिकोडिंग दोनों प्रदान करता है। एन्कोड मोड प्रत्येक वर्ण को लपेटता है जिसे %HH प्रारूप में भागने की आवश्यकता होती है; डिकोड मोड परिवर्तन को उलट देता है। दोनों पूरी तरह से आपके ब्राउज़र में अंतर्निहित जावास्क्रिप्ट यूआरएल फ़ंक्शन का उपयोग करके चलते हैं, इसलिए कोई डेटा कहीं भी नहीं भेजा जाता है।

यूआरएल को एनकोड या डीकोड क्यों करें?

किसी भी समय डेटा को यूआरएल में शामिल किया जाता है - क्वेरी स्ट्रिंग पैरामीटर, उपयोगकर्ता इनपुट वाले पथ खंड, रीडायरेक्ट लक्ष्य - उचित एन्कोडिंग की आवश्यकता होती है। एनकोड करने में विफल रहने से ऐसे यूआरएल उत्पन्न होते हैं जो विशेष वर्ण दिखाई देने पर टूट जाते हैं, पैरामीटर सीमाओं को क्वेरी स्ट्रिंग्स में लीक कर देते हैं (&x=1 को एक अलग पैरामीटर में बदल देते हैं), या वेब सर्वर द्वारा विकृत अनुरोधों के रूप में अवरुद्ध हो जाते हैं।

डिकोडिंग इसका उलटा है: एन्कोडेड यूआरएल से मूल डेटा निकालना। ब्राउज़र एड्रेस बार अक्सर एन्कोडेड रूप में यूआरएल दिखाते हैं; डिकोडिंग से पता चलता है कि वास्तव में क्या इरादा था। लॉगिंग, डिबगिंग और सुरक्षा विश्लेषण सभी डिकोडेड यूआरएल से लाभान्वित होते हैं जो मूल पैरामीटर और पथ दिखाते हैं।

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

एक स्ट्रिंग चिपकाएँ, दिशा चुनें.

  1. एन्कोड या डिकोड चुनें: एनकोड असुरक्षित वर्णों को %HH प्रारूप में लपेटता है। डिकोड %HH को उलट कर शाब्दिक वर्णों में वापस चला जाता है।
  2. इनपुट टेक्स्ट जोड़ें: एन्कोड या डिकोड करने के लिए स्ट्रिंग चिपकाएँ। एन्कोडिंग के लिए, यह आमतौर पर रिक्त स्थान, विशेष वर्ण या गैर-ASCII सामग्री के साथ एक शाब्दिक मूल्य है। डिकोडिंग के लिए, यह एक यूआरएल या यूआरएल घटक है जिसमें %HH एस्केप शामिल है।
  3. कनवर्ट करें: उपकरण encodeURIComponent या decodeURIComponent लागू करता है। एन्कोडेड आउटपुट को यूआरएल में एम्बेड करना सुरक्षित है; डिकोड किया गया आउटपुट मूल शाब्दिक मान है।
  4. कॉपी करें या डाउनलोड करें: जहाँ भी आपको आवश्यकता हो, परिणाम का उपयोग करें। एन्कोडेड मान यूआरएल में फिट होते हैं; डिकोड किए गए मान मूल डेटा को प्रकट करते हैं।

सामान्य उपयोग के मामले

तकनीकी विवरण

encodeURIComponent अनारक्षित सेट [A-Za-z0-9-_.~] के बाहर प्रत्येक वर्ण को एन्कोड करता है। रिक्त स्थान %20 बन जाते हैं, प्लस चिह्न %2बी बन जाते हैं, समान चिह्न %3डी बन जाते हैं, इत्यादि। ASCII के बाहर के वर्णों को पहले UTF-8 में एन्कोड किया जाता है और फिर प्रत्येक बाइट को %-एस्केप किया जाता है।

एन्कोडयूआरआई अधिक अनुमेय है और घटकों के बजाय पूर्ण यूआरएल के लिए अभिप्रेत है। यह /, ?, &, =, #, और कुछ अन्य से बच नहीं पाता क्योंकि उन वर्णों का URL-वाक्यविन्यास अर्थ होता है। किसी URL में उपयोगकर्ता डेटा एम्बेड करने के लिए, encodeURIComponent लगभग हमेशा सही विकल्प होता है।

decodeURIComponent %-escapes को उलट देता है, यह पुष्टि करते हुए कि प्रत्येक एस्केप अच्छी तरह से बना है और परिणामी बाइट्स वैध UTF-8 बनाते हैं। विकृत इनपुट कचरा उत्पन्न करने के बजाय त्रुटि उत्पन्न करता है।

सर्वोत्तम प्रथाएँ

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

किन वर्णों को यूआरएल एन्कोडिंग की आवश्यकता है?
आरक्षित वर्ण (&, =, ?, #, /, :, @) और असुरक्षित वर्ण (रिक्त स्थान, <, >, {, }, |, ^, ~, [, ], `) को एन्कोड किया जाना चाहिए। अल्फ़ान्यूमेरिक वर्ण और -_.~ सुरक्षित हैं और उन्हें एन्कोडिंग की आवश्यकता नहीं है।
एनकोडयूआरआई और एनकोडयूआरआईकंपोनेंट के बीच क्या अंतर है?
encodeURI एक पूर्ण URL को एनकोड करता है लेकिन आरक्षित वर्ण (://?#) को सुरक्षित रखता है। encodeURIComponent -_.!~*'() को छोड़कर बाकी सभी चीजों को एनकोड करता है - क्वेरी पैरामीटर मानों के लिए इसका उपयोग करें। यह टूल दोनों मोड प्रदान करता है।
यूआरएल में रिक्त स्थान कैसे एन्कोड किए जाते हैं?
रिक्त स्थान को %20 (मानक प्रतिशत-एन्कोडिंग) या + (फॉर्म एन्कोडिंग) के रूप में एन्कोड किया जा सकता है। यूआरएल पथों के लिए %20 सही है, जबकि HTML फॉर्म से क्वेरी स्ट्रिंग्स में + का उपयोग किया जाता है। यह टूल डिफ़ॉल्ट रूप से %20 का उपयोग करता है।
क्या मैं यूनिकोड वर्णों को एन्कोड कर सकता हूँ?
हाँ। यूनिकोड वर्णों को पहले UTF-8 बाइट्स में एन्कोड किया जाता है, फिर प्रत्येक बाइट को प्रतिशत-एन्कोड किया जाता है। उदाहरण के लिए, '日' %E6%97%A5 (तीन UTF-8 बाइट्स, प्रत्येक प्रतिशत-एन्कोडेड) बन जाता है।
क्या मुझे encodeURI या encodeURIComponent का उपयोग करना चाहिए?
लगभग हमेशा URIComponent को एनकोड करें। एनकोडयूआरआई का उपयोग केवल तभी करें जब आपके पास एक पूर्ण यूआरएल हो और आप इसकी संरचना को संरक्षित करना चाहते हों - आमतौर पर दुर्लभ क्योंकि आप वैसे भी घटकों से यूआरएल बनाते हैं।
क्या मेरा डेटा किसी सर्वर पर अपलोड किया गया है?
नहीं, यूआरएल एन्कोडिंग और डिकोडिंग पूरी तरह से आपके ब्राउज़र में होती है।
क्या यह यूनिकोड इमोजी को संभालता है?
हाँ। इमोजी मल्टी-बाइट UTF-8 अनुक्रम हैं; एनकोडर %-एस्कैप्ड बाइट्स की एक श्रृंखला तैयार करता है जिसे डिकोडर सही ढंग से मूल इमोजी में वापस जोड़ते हैं।
यदि मेरे इनपुट में %HH-दिखने वाली स्ट्रिंग्स हैं जो वास्तव में एन्कोडेड नहीं हैं तो क्या होगा?
एन्कोडिंग प्रत्येक % को %25 में बदल देती है, फिर शेष के लिए एस्केपिंग को पुनः लागू करती है। सख्त इनपुट को डिकोड करने से विकृत एस्केप पर त्रुटियां उत्पन्न होती हैं; अस्पष्ट दिखने वाले तार गलत तरीके से डिकोड हो सकते हैं।