URL एन्कोड और डिकोड कैसे करें: एक संपूर्ण गाइड
त्वरित जवाब
URL एन्कोडिंग unsafe अक्षरों को %XX अनुक्रम में बदलती है जहाँ XX byte का hex मान है। स्पेस %20 (या form data में +), Chinese अक्षर multi-byte %XX अनुक्रम बनते हैं। हमारे मुफ्त URL Encoder और Decoder से ब्राउज़र में बदलें।
परिचय
URL एन्कोडिंग, percent-encoding भी, URL में reserved और unsafe अक्षरों को एन्कोड करने का तंत्र है ताकि URL सुरक्षित भेजा जा सके। URL केवल सीमित ASCII अक्षर रख सकते हैं; कोई भी अन्य अक्षर (स्पेस, गैर-ASCII) को % के बाद दो hex अंकों के अनुक्रम से एन्कोड करना होता है।
क्रमशः
-
पहचानें कि एन्कोडिंग की क्या आवश्यकता है
जो वर्ण अनारक्षित सेट (ए-जेड, ए-जेड, 0-9, -, ., _, ~) में नहीं हैं, उन्हें प्रतिशत-एनकोडेड होना चाहिए। इसमें रिक्त स्थान, क्वेरी विभाजक जैसे = और &, स्लैश और सभी गैर-ASCII वर्ण जैसे चीनी, अरबी या इमोजी शामिल हैं।
-
URL या क्वेरी स्ट्रिंग को एनकोड करें
अपना टेक्स्ट URL एनकोडर टूल में पेस्ट करें। यह प्रत्येक आरक्षित वर्ण को एन्कोड करने के लिए encodeURIComponent() का उपयोग करता है। परिणाम तुरंत आउटपुट फ़ील्ड में दिखाई देता है।
-
एन्कोडेड परिणाम की प्रतिलिपि बनाएँ
प्रतिशत-एन्कोडेड स्ट्रिंग की प्रतिलिपि बनाने के लिए कॉपी बटन पर क्लिक करें। अब आप इसे URL क्वेरी पैरामीटर, API अनुरोध, या फ़ॉर्म सबमिशन में सुरक्षित रूप से एम्बेड कर सकते हैं।
-
एक एन्कोडेड URL को डीकोड करें
एक एन्कोडेड URL या क्वेरी स्ट्रिंग को URL डिकोडर टूल में चिपकाएँ। यह मूल वर्णों को पुनर्स्थापित करने के लिए decodeURIComponent() का उपयोग करता है। सत्यापित करें कि डिकोड किया गया आउटपुट आपकी अपेक्षा से मेल खाता है।
-
किनारे के मामलों को सत्यापित करें
जांचें कि रिक्त स्थान सही ढंग से डीकोड किए गए हैं (%20 बनाम +), मल्टी-बाइट यूटीएफ -8 अनुक्रम सही वर्ण पर डीकोड करते हैं, और पहले से एन्कोडेड स्ट्रिंग डबल-एनकोडेड नहीं हैं।
उदाहरण
टेक्स्ट को एक स्पेस के साथ एन्कोड करें
इनपुट: Hello World
उत्पादन: Hello%20World
पथ विभाजक को एनकोड करें
इनपुट: a/b
उत्पादन: a%2Fb
चीनी अक्षरों को एनकोड करें (UTF-8)
इनपुट: 你好
उत्पादन: %E4%BD%A0%E5%A5%BD
एन्कोडेड क्वेरी पैरामीटर को डीकोड करें
इनपुट: key%3Dvalue%26foo%3Dbar
उत्पादन: key=value&foo=bar
सामान्य समस्या
- डबल-एन्कोडिंग: पहले से एन्कोडेड स्ट्रिंग को एन्कोड करने से %20 को %2520 में बदल दिया जाता है। पुन: एन्कोडिंग से पहले हमेशा जांचें कि इनपुट पहले से एन्कोड किया गया है या नहीं।
- encodeURIComponent के साथ encodeURI को भ्रमित करना: encodeURI पूर्ण URLs के लिए /, ?, और जैसे आरक्षित वर्णों को बरकरार रखता है, जबकि encodeURIComponent क्वेरी पैरामीटर मानों के लिए सब कुछ एनकोड करता है।
- स्पेस हैंडलिंग: %20 प्रतिशत-एन्कोडेड फॉर्म है; + केवल एप्लिकेशन/x-www-form-urlencoded बॉडी डेटा में मान्य है, URL पथ या क्वेरी स्ट्रिंग प्रति RFC 3986 में नहीं।
- गैर-UTF-8 लीगेसी एन्कोडिंग: आधुनिक ब्राउज़र UTF-8 के रूप में एन्कोड करते हैं, लेकिन लीगेसी सिस्टम GBK या लैटिन-1 का उपयोग कर सकते हैं, जिससे दूसरी तरफ डिकोड होने पर मोजिबेक हो सकता है।
सुझावों
- व्यक्तिगत क्वेरी पैरामीटर मानों के लिए encodeURIComponent() का उपयोग करें, और संपूर्ण URLs के लिए encodeURI() का उपयोग करें जो पहले से ही अच्छी तरह से गठित हैं।
- क्वेरी स्ट्रिंग बनाते समय, मान को एनकोड करें, लेकिन = या & विभाजक को नहीं - प्रत्येक मान को अलग से एनकोड करें, फिर & के साथ जुड़ें।
- API कॉल को डीबग करने के लिए हमारे URL एनकोडर और डिकोडर टूल का उपयोग करें जो विकृत क्वेरी स्ट्रिंग्स के कारण 400 त्रुटियां लौटाते हैं।
- मोजिबेक से बचने के लिए हमेशा समान कैरेक्टर एन्कोडिंग (UTF-8) का उपयोग करके सर्वर साइड पर डीकोड करें।