URL एनकोड / डिकोड
URL घटकों और क्वेरी स्ट्रिंग को परसेंट-एनकोड या डिकोड कीजिए
इस टूल के बारे में
स्पेस, ऐम्परसैंड और ग़ैर-ASCII अक्षर जैसे वर्ण URL में जस के तस नहीं आ सकते, इसलिए उन्हें प्रतिशत-एनकोड किया जाता है: स्पेस %20 बनता है, 你 बनता है %E4%BD%A0। यह टूल पाठ को URL में सुरक्षित रूप से डालने के लिए एनकोड करता है और प्रतिशत-एस्केप की गई स्ट्रिंग को वापस पठनीय पाठ में बदलता है, जिसमें क्वेरी स्ट्रिंग में स्पेस के लिए + वाली परिपाटी भी शामिल है।
एनकोडिंग के दो मोड इसलिए हैं क्योंकि JavaScript में भी दो हैं: कंपोनेंट मोड (encodeURIComponent) उन सब वर्णों को एस्केप करता है जो URL को बाँट सकते हैं — क्वेरी स्ट्रिंग के किसी एक मान के लिए यही चाहिए; पूर्ण-URI मोड (encodeURI) /, ? और & जैसे संरचनात्मक वर्ण बचाए रखता है, जब आप कोई पूरा URL एनकोड कर रहे हों जिस पर आगे जाना भी हो।
डिकोडिंग ख़राब % अनुक्रमों को लेकर सख़्त है — अकेला % या %ZZ चुपचाप निकल जाने के बजाय त्रुटि के रूप में बताया जाता है, ठीक वैसे ही जैसे ब्राउज़र और सर्वर उसे लेंगे।
अक्सर पूछे जाने वाले प्रश्न
- कंपोनेंट मोड कब और पूर्ण-URI मोड कब?
- यदि आप कोई ऐसा मान एनकोड कर रहे हैं जो URL के भीतर जाएगा (कोई खोज-प्रश्न, कोई रीडायरेक्ट गंतव्य, किसी पैरामीटर में ईमेल) → कंपोनेंट मोड, ताकि मान के भीतर के & और = क्वेरी स्ट्रिंग न तोड़ें। यदि दिखाने या भेजने के लिए पूरा URL एनकोड कर रहे हैं → पूर्ण-URI मोड, ताकि URL की संरचना बची रहे।
- + कभी-कभी स्पेस का अर्थ क्यों रखता है?
- application/x-www-form-urlencoded प्रारूप — जिसे HTML फ़ॉर्म और क्वेरी स्ट्रिंग इस्तेमाल करते हैं — ऐतिहासिक रूप से स्पेस को + के रूप में एनकोड करता है। URL पथों में + बस एक जोड़ चिह्न है। यहाँ का डिकोडर + को स्पेस मानता है, जो क्वेरी-स्ट्रिंग के अर्थ से मेल खाता है; %20 हर जगह हमेशा चलता है।
- मेरी स्ट्रिंग दो बार एनकोड (%2520) क्यों है?
- %25 स्वयं % की एनकोडिंग है, इसलिए %2520 का अर्थ है कि पाठ %20 को दूसरी बार एनकोड किया गया। ऐसा तब होता है जब किसी तंत्र की दो परतें अलग-अलग एनकोड करती हैं। यहाँ दो बार डिकोड करके इसे खोलिए, फिर उस परत को ठीक कीजिए जिसे एनकोड नहीं करना चाहिए।
- क्या यूनिकोड वर्ण सही ढंग से सँभाले जाते हैं?
- हाँ — पाठ पहले UTF-8 में एनकोड होता है और फिर WHATWG URL मानक के अनुसार हर बाइट प्रतिशत-एस्केप होती है। इसीलिए एक CJK वर्ण तीन %XX समूह बन जाता है।