URL एन्कोड करें
टेक्स्ट को percent-encode करें ताकि वह URL में सुरक्षित रहे। तीन अलग कामों के लिए तीन अलग एन्कोडिंग हैं, और ग़लत वाली चुनने से वैल्यू चुपचाप टूट जाती हैं — इसलिए पेज आपको बताता है कि आपको कौन-सी चाहिए।
- कभी स्टोर नहीं होती
- न कतार, न इंतज़ार
- साइनअप नहीं, वॉटरमार्क नहीं
एन्कोड किया हुआ यहां दिखेगा।
यह कैसे काम करता है
अपना टेक्स्ट पेस्ट करें
कोई भी टेक्स्ट, किसी भी भाषा में। यह UTF-8 के रूप में एन्कोड होता है, जिसकी हर आधुनिक सर्वर उम्मीद करता है।
काम चुनें
query string में जाने वाली एक वैल्यू, पूरा बना हुआ URL, या फ़ॉर्म सबमिशन। फ़र्क़ मायने रखता है और हर एक समझाया गया है।
नतीजा कॉपी करें
अगर एक साथ पूरी सूची करनी है, तो लाइन-दर-लाइन एन्कोड करें।
तीन सही जवाब, और एक बटन ग़लत क्यों है
Percent-encoding किसी कैरेक्टर की जगह % और hex में उसकी बाइट वैल्यू लिख देता है। स्पेसिफ़िकेशन कैरेक्टर को तीन समूहों में बांटता है, और इसकी सारी उलझन यहीं से आती है। Unreserved कैरेक्टर — अक्षर, अंक, हाइफ़न, फ़ुल स्टॉप, अंडरस्कोर और टिल्ड — को कभी एन्कोड करने की ज़रूरत नहीं होती। Reserved कैरेक्टर — स्लैश, सवालिया निशान, ऐम्परसैंड, बराबर का चिह्न और कोलन, जो URL को उसकी बनावट देते हैं — को *जब वे डेटा हों* तब एन्कोड करना ज़रूरी है और *जब वे बनावट का हिस्सा हों* तब नहीं। बाक़ी सब हमेशा एन्कोड होता है।
इसीलिए कोई एक सही जवाब नहीं है। पूरा URL एन्कोड करते समय स्लैश और सवालिया निशान को छोड़ना पड़ता है, वरना पता, पता ही नहीं रहता। query पैरामीटर में डालने वाली वैल्यू को एन्कोड करते समय ऐम्परसैंड और बराबर के चिह्न एस्केप करने ज़रूरी हैं, वरना उनमें से किसी को रखने वाली वैल्यू दो पैरामीटर में बंट जाती है। path segment एन्कोड करते समय स्लैश एस्केप करने ज़रूरी हैं, वरना नाम में स्लैश वाली फ़ाइल दो डायरेक्टरी बन जाती है। अकेला Encode बटन इनमें से एक चुन लेता है और बाक़ी दो-तिहाई मामलों में ग़लत होता है — आमतौर पर चुपचाप, और आमतौर पर ऐसे कि असामान्य इनपुट पर ही दिखे।
स्पेस वह कैरेक्टर है जिसके साथ सबसे ज़्यादा इतिहास जुड़ा है। URL में यह %20 है। सबमिट किए गए HTML फ़ॉर्म में यह + है, जो एक अलग, पुरानी एन्कोडिंग है और इसलिए बची हुई है क्योंकि फ़ॉर्म 1994 से ऐसे ही काम करते आए हैं। दोनों अपने-अपने संदर्भ में सही हैं और दूसरे में ग़लत, इसीलिए query string में प्लस चिह्न ऐसे तरीक़े से अस्पष्ट है जिसे एन्कोड करने वाले की कोई सावधानी ठीक नहीं कर सकती।
गैर-ASCII टेक्स्ट पहले UTF-8 में एन्कोड होता है और फिर बाइट-दर-बाइट, इसलिए ऐक्सेंट वाला एक अक्षर दो percent क्रम बन जाता है और एक इमोजी चार। डबल एन्कोडिंग क्लासिक बग है: पहले से एन्कोड की गई चीज़ को फिर एन्कोड करने से हर % %25 बन जाता है, इसलिए %20 बन जाता है %2520 और दूसरी तरफ़ एक असली percent चिह्न पहुंचता है। अगर किसी URL में %25 भरे पड़े हैं, तो वह एक एन्कोडर ज़्यादा से गुज़रा है।
जब आपको कुछ और चाहिए
कोड में भाषा का अपना फ़ंक्शन इस्तेमाल करें और उसे उतनी ही सोच-समझकर चुनें जितना यह पेज आपसे चुनवाता है। JavaScript में पूरे पते के लिए encodeURI और वैल्यू के लिए encodeURIComponent है; Python में urllib.parse.quote है, जिसका safe आर्ग्युमेंट डिफ़ॉल्ट रूप से स्लैश को छोड़ देता है; PHP rawurlencode और urlencode में फ़र्क़ करता है, जो ठीक ऊपर बताए स्पेस-बनाम-प्लस सवाल पर अलग हैं। इससे भी बेहतर, स्ट्रिंग जोड़कर नहीं बल्कि URL टाइप से URL बनाएं, और यह सवाल ही ख़त्म हो जाता है।
कमांड लाइन पर jq -rR @uri सुरक्षित रूप से एन्कोड करता है और सूची भी संभालता है, और curl --data-urlencode सही एन्कोड किया पैरामीटर बनाता है, बिना यह सोचे कि आप तीनों में से किस मामले में हैं — बस यही एक जगह है जहां यह सच में आसान है।
अक्सर पूछे जाने वाले सवाल
तीनों में से कौन-सा इस्तेमाल करूं?
लगभग हमेशा “एक वैल्यू”। इसे तब इस्तेमाल करें जब आप कोई एक वैल्यू एन्कोड कर रहे हों जो query string या path segment में जाने वाली है — सर्च शब्द, ईमेल पता, redirect का लक्ष्य। तीनों में सिर्फ़ यही &, =, ? और / को एस्केप करता है, और ठीक यही आपकी वैल्यू को अपने पैरामीटर से बाहर निकलकर दो पैरामीटर बनने से रोकता है। “पूरा URL” सिर्फ़ तब इस्तेमाल करें जब आपके पास पहले से पूरा URL हो और आप बस उसके असुरक्षित कैरेक्टर साफ़ करना चाहते हों; यह बनावट वाले कैरेक्टर को जानबूझकर नहीं छूता ताकि URL, URL ही रहे। “फ़ॉर्म डेटा” तब इस्तेमाल करें जब आप application/x-www-form-urlencoded बॉडी बना रहे हों, जिसमें स्पेस %20 के बजाय + होता है।
मेरे “&” ने URL क्यों तोड़ दिया?
क्योंकि वह एन्कोड नहीं हुआ था, और query string में & ही एक पैरामीटर को अगले से अलग करता है। "Smith & Sons" वैल्यू को ?company= के बाद बिना एन्कोड किए जोड़ने पर सर्वर पर company=Smith पहुंचता है और साथ में "Sons" नाम का एक दूसरा, ख़ाली पैरामीटर। यह URL का सबसे आम बग है, और “एक वैल्यू” एन्कोडिंग इसका इलाज है — यह & को %26 बना देती है ताकि वैल्यू एक ही वैल्यू रहे।
मेरा “+” स्पेस क्यों बन गया?
क्योंकि query string में + का मतलब स्पेस है — HTML फ़ॉर्म से आया एक नियम जिसे आज तक कोई हटा नहीं पाया। इसलिए आपके डेटा में असली प्लस, किसी फ़ोन नंबर या Base64 स्ट्रिंग में, पाने वाले सर्वर को स्पेस के रूप में मिलता है। “एक वैल्यू” एन्कोडिंग इसे %2B में एस्केप करती है, जो सही-सलामत पहुंचता है।
क्या यह दूसरी भाषाएं और इमोजी संभालता है?
हां। टेक्स्ट पहले UTF-8 में बदला जाता है और फिर बाइट-दर-बाइट percent-encode होता है, जो RFC 3986 की मांग है और जिसकी हर आधुनिक सर्वर उम्मीद करता है। जापानी, अरबी, ऐक्सेंट वाली Latin और इमोजी — सब एन्कोड होकर बिल्कुल वैसे ही वापस आते हैं।
जब दूसरे टूल ! ' ( ) * को छोड़ देते हैं, तो यहां ये एन्कोड क्यों होते हैं?
क्योंकि ब्राउज़र का बिल्ट-इन encodeURIComponent इन पांचों को छोड़ देता है, जबकि RFC 3986 इन्हें reserved बताता है। कुछ सर्वर और फ़्रेमवर्क इन्हें बनावट का हिस्सा मानते हैं, इसलिए इन्हें रखने वाली वैल्यू ग़लत पढ़ी जा सकती है। इन्हें एन्कोड करने में कोई नुक़सान नहीं — ये हर जगह डिकोड होकर बिल्कुल वैसे ही लौटते हैं — और इससे दुर्लभ, मुश्किल से पकड़ में आने वाले बग की एक पूरी क़िस्म ख़त्म हो जाती है। सावधान इम्प्लीमेंटेशन यही करते हैं।
क्या मेरा टेक्स्ट कहीं स्टोर होता है?
नहीं। कुछ भी स्टोर नहीं होता और कोई रिक्वेस्ट नहीं भेजी जाती। पेज लोड होने के बाद आप इंटरनेट डिस्कनेक्ट कर सकते हैं और यह काम करता रहता है।
ध्यान दें: सही जवाब तीन अलग-अलग हैं और पेज आपसे चुनवाता है, क्योंकि आम तौर पर मिलने वाला अकेला Encode बटन दो-तिहाई बार ग़लत होता है। पूरा URL, query पैरामीटर और path segment एन्कोड करने में अलग-अलग कैरेक्टर एस्केप होते हैं; ग़लत वाला इस्तेमाल करने से स्लैश, प्लस चिह्न या ऐम्परसैंड चुपचाप टूट जाते हैं।
यह टूल अपनी वेबसाइट पर लगाएं
किसी भी ब्लॉग, क्लास पेज या हेल्प आर्टिकल के लिए मुफ़्त। एक स्निपेट पेस्ट करें और आपके विज़िटर इसे सीधे आपके पेज पर इस्तेमाल कर सकेंगे।
और डेवलपर टूल्स
URL डिकोड करें
%20 जैसे कोड को वापस टेक्स्ट में बदलें
Base64 एन्कोड करें
टेक्स्ट या फ़ाइल को Base64 में बदलें
JSON फ़ॉर्मैटर
उलझे JSON को पढ़ने लायक बनाएं
Base64 डिकोड करें
Base64 को वापस टेक्स्ट या फ़ाइल में बदलें
QR कोड बनाएं
ऐसा QR कोड जो हमेशा आपका रहे
बारकोड बनाएं
EAN, UPC, Code 128 — अंकों की जांच के साथ