URL encode कैसे करें: %20 या +, आसान गाइड

लेखक: • 1 नवंबर, 2026 • डेवलपर टूल • 2 मिनट में पढ़ें

फ्री टूल से किसी भी टेक्स्ट को सेकंडों में URL encode करें। जानें स्पेस %20 हो या +, हिंदी शब्द कैसे encode होते हैं और डबल encoding से कैसे बचें।

किसी टेक्स्ट को URL encode करने का मतलब है: जो भी कैरेक्टर साधारण अंग्रेज़ी अक्षर, अंक या - . _ ~ में से नहीं है, उसे % और उसके हर UTF-8 बाइट की दो अंकों वाली hex वैल्यू से बदल देना। स्पेस %20 (या query string में +) बन जाता है, & बनता है %26, और नमस्ते जैसा एक शब्द 54 कैरेक्टर का %E0%A4%A8%E0%A4%AE%E0%A4%B8%E0%A5%8D%E0%A4%A4%E0%A5%87 बन जाता है। सबसे तेज़ तरीका है हमारे फ्री URL एनकोडर में टेक्स्ट पेस्ट करके नतीजा कॉपी करना। यह फ्री है, कोई अकाउंट नहीं चाहिए और किसी भी ब्राउज़र में चलता है। असली मुश्किल यह जानना है कि क्या encode करना है और जहाँ आप लिंक लगा रहे हैं वहाँ कौन-सा तरीका चाहिए। यह गाइड इसी के बारे में है।

नीचे दिए सारे आउटपुट असली हैं: हमने 1 नवंबर 2026 को My Botsy के लाइव टूल में इनपुट चलाए और उन्हीं स्ट्रिंग्स को JavaScript (Node.js 24), Python 3.13 और PHP से मिलाकर देखा।

URL encode कैसे करें, स्टेप बाय स्टेप

  1. सिर्फ़ वैल्यू अलग करें। केवल वही डेटा encode करें जो URL के अंदर जाएगा, जैसे सर्च टर्म, फ़ाइल का नाम या redirect का पता। पूरा पता कभी नहीं (वजह नीचे है)।
  2. एनकोडर में पेस्ट करें। URL एनकोडर खोलें, वैल्यू पेस्ट करें और Submit दबाएँ।
  3. नतीजा कॉपी करें। कॉपी बटन इस्तेमाल करें। स्पेस + के रूप में आते हैं, जो query string के लिए सही है।
  4. Path में हो तो %20 लगाएँ। अगर वैल्यू path का हिस्सा है (? से पहले), तो हर + को %20 से बदल दें। यह सुरक्षित है, क्योंकि आपके टेक्स्ट का असली प्लस पहले से %2B बन चुका होता है।
  5. जाँच लें। तैयार लिंक को URL पार्सर में डालें। यह हर पैरामीटर को decode करके दिखाता है कि सर्वर को ठीक-ठीक क्या मिलेगा।

अभी आज़माएँ: स्पेस, हिंदी शब्द या & वाला कोई भी टेक्स्ट फ्री URL एनकोडर में डालें और एक सेकंड में लिंक के लिए सुरक्षित वर्शन पाएँ।

किन कैरेक्टर्स को encode करना ज़रूरी है

RFC 3986, यानी URL को परिभाषित करने वाला स्टैंडर्ड, कैरेक्टर्स को तीन समूहों में बाँटता है:

  • Unreserved, कभी encode नहीं होते: A–Z a–z 0–9 - . _ ~। देवनागरी का कोई भी अक्षर इस सूची में नहीं है।
  • Reserved, जिनका URL में काम है: : / ? # [ ] @ ! $ & ' ( ) * + , ; =। जब ये आपके डेटा का हिस्सा हों तो इन्हें encode करना पड़ता है। सर्च टर्म में बिना encode किया & नया पैरामीटर शुरू कर देता है और आपकी वैल्यू आधी कट जाती है।
  • बाकी सब: स्पेस, कोट्स, < >, %, एक्सेंट वाले अक्षर, इमोजी और हर गैर-लैटिन लिपि। ये हमेशा UTF-8 से बाइट-दर-बाइट encode होते हैं। देवनागरी का हर अक्षर या मात्रा 3 बाइट लेती है, इसलिए दिवाली ऑफ़र बन जाता है %E0%A4%A6%E0%A4%BF%E0%A4%B5%E0%A4%BE%E0%A4%B2%E0%A5%80+%E0%A4%91%E0%A4%AB%E0%A4%BC%E0%A4%B0। यही वजह है कि हिंदी विकिपीडिया जैसे पेज का लिंक कॉपी करने पर अक्सर %E0%A4... से भरा लंबा पता मिलता है।

असली टेस्ट: जाल से भरी एक स्ट्रिंग

हमने जान-बूझकर ऐसा इनपुट चुना जिसमें लगभग हर समस्या है:

Café & Bar #1 / 50% off? a+b=c ~ü 東京 Tom's "best" <b>

URL एनकोडर ने यह लौटाया:

Caf%C3%A9+%26+Bar+%231+%2F+50%25+off%3F+a%2Bb%3Dc+%7E%C3%BC+%E6%9D%B1%E4%BA%AC+Tom%27s+%22best%22+%3Cb%3E
इनपुटआउटपुटक्यों ज़रूरी
स्पेस+फ़ॉर्म वाला फ़ॉर्मेट, query में मान्य
&%26वरना नया पैरामीटर शुरू हो जाता
#%23वरना आगे का हिस्सा fragment बन जाता, जो सर्वर तक पहुँचता ही नहीं
%%25वरना 50% o टूटा हुआ escape माना जाता
+%2Bवरना सर्वर इसे स्पेस पढ़ता
é, ü%C3%A9, %C3%BCहर एक के दो UTF-8 बाइट
~%7Eज़रूरी नहीं, पर नुकसान भी नहीं: सर्वर दोनों रूप मानते हैं
' " < >%27 %22 %3C %3Eडेटा के रूप में बचे रहते हैं, हटाए नहीं जाते

यह आउटपुट बाइट-दर-बाइट वही है जो ब्राउज़र का URLSearchParams उसी टेक्स्ट के लिए बनाता है, और वही जो PHP का urlencode() देता है, जिसे यह टूल इस्तेमाल करता है। यानी यहाँ encode की गई वैल्यू ठीक वैसे ही काम करती है जैसे किसी वेब फ़ॉर्म से भेजी गई वैल्यू।

%20 या +: स्पेस के लिए कौन-सा सही है?

दोनों का मतलब "स्पेस" है, पर अलग-अलग जगहों पर। %20 RFC 3986 की सामान्य percent-encoding है और URL में हर जगह चलती है। + HTML फ़ॉर्म के फ़ॉर्मेट (application/x-www-form-urlencoded) से आया है और सिर्फ़ query string के अंदर स्पेस माना जाता है। Path में + असली प्लस है: /files/my+report.pdf ऐसी फ़ाइल माँगता है जिसके नाम में प्लस हो।

  • Query की वैल्यू (?q=red+shoes): + या %20, दोनों चलते हैं।
  • Path के हिस्से (/docs/my%20report): सिर्फ़ %20।
  • mailto: लिंक: %20। mailto का स्टैंडर्ड (RFC 6068) कहता है कि स्पेस %20 लिखे जाएँ, क्योंकि + को असली प्लस से अलग नहीं पहचाना जा सकता, जैसे priya+news@example.org में। इसीलिए हमारा mailto लिंक जनरेटर %20 लिखता है; बाकी बातें हमारी mailto लिंक गाइड में हैं।

कोड में कौन-सा फ़ंक्शन इस्तेमाल करें

हमने वही टेस्ट स्ट्रिंग आम फ़ंक्शंस से चलाई। ये चार बातों पर अलग नतीजे देते हैं: स्पेस, /, ~ और '।

फ़ंक्शनस्पेस/~'& # ? को वैसे ही छोड़ता है?
JS encodeURIComponent%20%2F~'नहीं
JS encodeURI%20/~'हाँ
JS URLSearchParams+%2F%7E%27नहीं
Python quote()%20/~%27नहीं
Python quote_plus()+%2F~%27नहीं
PHP rawurlencode()%20%2F~%27नहीं
PHP urlencode() / हमारा टूल+%2F%7E%27नहीं

इनमें से दो अक्सर धोखा देते हैं। encodeURI पूरे URL के लिए बना है, इसलिए यह &, #, ?, = और + को नहीं छूता। किसी वैल्यू पर लगाने से Café & Bar #1 बनता है Caf%C3%A9%20&%20Bar%20#1, और लिंक & और # पर टूट जाता है। Python का quote() डिफ़ॉल्ट रूप से / नहीं बदलता, इसलिए /cart?id=7 जैसे redirect में स्लैश बचा रहता है, जब तक आप safe='' न दें। एक अकेली वैल्यू के लिए encodeURIComponent, quote(value, safe='') या rawurlencode इस्तेमाल करें।

उदाहरण: एक URL के अंदर दूसरा URL

लॉगिन पेज को यूज़र को बाद में /cart?id=7 पर वापस भेजना है। अगर आप /login?next=/cart?id=7 लिखते हैं, तो दूसरा ? और आगे का कोई भी & सर्वर को उलझा देता है। पहले अंदर वाला URL encode करें:

/login?next=%2Fcart%3Fid%3D7

तैयार लिंक जाँचने के लिए हमने https://shop.example/search?q=caf%C3%A9+%26+bar&next=%2Fcart%3Fid%3D7 को URL पार्सर में डाला। उसने raw query दिखाई और फिर decode किए गए पैरामीटर, ठीक वैसे जैसे सर्वर को मिलते हैं:

{ "q": "café & bar", "next": "/cart?id=7" }

दो साफ़ वैल्यू, कोई फ़ालतू पैरामीटर नहीं। कैंपेन लिंक भी ऐसे ही काम करते हैं: हर UTM वैल्यू एक पैरामीटर है, इसलिए उसे encode करें, या बेहतर है कि सिर्फ़ छोटे अक्षर और अंडरस्कोर रखें, जैसा हमारी UTM पैरामीटर गाइड सुझाती है।

URL encoding की आम गलतियाँ

पूरा URL encode कर देना

https://mybotsy.com/?q=red shoes को encode करने पर मिलता है https%3A%2F%2Fmybotsy.com%2F%3Fq%3Dred+shoes, जो अब काम करने वाला लिंक नहीं है। यह तभी सही है जब पूरा URL खुद किसी पैरामीटर की वैल्यू हो, जैसे ऊपर वाले redirect में।

दो बार encode करना

पहले से encode किए टेक्स्ट को दोबारा encode करने पर प्रतिशत के निशान भी encode हो जाते हैं। हमने a%20b टेस्ट किया और मिला a%2520b। लिंक में %25 के बाद दो hex अंक दिखें तो समझिए दो बार encode हुआ है। %25252F को / तक पहुँचने में तीन बार decode करना पड़ता है (%252F, फिर %2F, फिर /)।

Decode करते समय प्लस खो देना

फ़ॉर्म-स्टाइल decoder, जिसमें हमारा URL डिकोडर भी है, + को स्पेस बना देते हैं। हमने q=mac+cheese&phone=%2B54+11+5555&path=%2Fdocs%2520v2 decode किया और मिला q=mac cheese&phone=+54 11 5555&path=/docs%20v2। देश का कोड इसलिए बचा क्योंकि उसका प्लस %2B लिखा था; बिना encode किया +91 स्पेस बन जाता। यही समस्या URL में Base64 वैल्यू को भी बिगाड़ती है। इससे बचाने वाले URL-safe alphabet के बारे में Base64 decode कैसे करें में पढ़ें।

पुराने Latin-1 escape को UTF-8 के साथ मिलाना

कुछ पुराने सिस्टम é को %C3%A9 की जगह %E9 (एक Latin-1 बाइट) लिखते हैं। UTF-8 में decode करने पर caf%E9 दिखता है caf�। अगर यह replacement कैरेक्टर दिखे, तो स्रोत पुरानी encoding इस्तेमाल कर रहा था।

अपने-आप होने वाली trimming पर भरोसा

हमारा एनकोडर शुरुआत और आखिर के स्पेस हटा देता है: " hello world" + नई लाइन + "line 2 " का नतीजा आया hello+world%0D%0Aline+2। आमतौर पर यही चाहिए, पर अगर शुरुआती स्पेस मायने रखता है तो %20 खुद जोड़ें। ब्राउज़र में टाइप की गई नई लाइन %0D%0A बनती है।

JavaScript में अकेला %

decodeURIComponent("50%") देता है URIError: URI malformed। हमारा डिकोडर अकेले % को वैसे ही छोड़ देता है (50% off वैसा ही रहता है): गड़बड़ डेटा में काम का है, पर यह चेतावनी भी नहीं देता।

जुड़े हुए फ्री टूल

ये सभी फ्री हैं और किसी अकाउंट की ज़रूरत नहीं। विज़िटर दिन में 5 बार टूल इस्तेमाल कर सकते हैं, और फ्री My Botsy अकाउंट (100% फ्री, कोई स्पैम नहीं) यह सीमा हटा देता है।

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

URL encoding क्या है?

URL encoding, जिसे percent-encoding भी कहते हैं, URL में मना या खास मतलब वाले कैरेक्टर्स को % और हर बाइट की दो अंकों वाली hex वैल्यू से बदल देती है। स्पेस %20 बनता है, & बनता है %26, और हर देवनागरी अक्षर तीन बाइट यानी नौ कैरेक्टर बनता है।

URL में स्पेस %20 हो या +?

Query string के अंदर दोनों चलते हैं, क्योंकि वहाँ + फ़ॉर्म वाला स्पेस है। Path या mailto लिंक में %20 इस्तेमाल करें, क्योंकि वहाँ + असली प्लस है। हमारा एनकोडर + देता है, इसलिए path के लिए उसे %20 से बदलें।

किन कैरेक्टर्स को encode करने की ज़रूरत नहीं है?

सिर्फ़ अंग्रेज़ी अक्षर A से Z और a से z, अंक 0 से 9, और चार चिह्न - . _ ~। & ? # = / + : जैसे reserved कैरेक्टर डेटा का हिस्सा हों तो encode होते हैं, और बाकी सब (स्पेस, कोट्स, हिंदी अक्षर, इमोजी) हमेशा encode होता है।

encodeURI और encodeURIComponent में क्या फ़र्क है?

encodeURI पूरे URL के लिए है और & # ? = और / जैसे ढाँचे वाले कैरेक्टर्स को नहीं छूता। encodeURIComponent एक अकेली वैल्यू के लिए है और इन्हें भी encode करता है। सर्च टर्म या redirect पर encodeURI लगाने से लिंक पहले & या # पर टूट जाता है।

मेरे लिंक में %2520 क्यों दिख रहा है?

वह दो बार encode हुआ है: पहली बार स्पेस %20 बना और दूसरी बार % बन गया %25। एक बार decode करें और मूल टेक्स्ट को सिर्फ़ एक बार encode करें।

क्या URL एनकोडर फ्री है?

हाँ। My Botsy का URL एनकोडर फ्री है, कोई अकाउंट नहीं चाहिए और किसी भी ब्राउज़र में चलता है। विज़िटर दिन में 5 बार इस्तेमाल कर सकते हैं, और फ्री अकाउंट यह सीमा हटा देता है।

किसी लिंक में कोई वैल्यू डालनी है? उसे फ्री URL एनकोडर में पेस्ट करें, नतीजा कॉपी करें और तैयार लिंक को URL पार्सर से जाँच लें।

यूज़र एजेंट स्ट्रिंग कैसे पढ़ें (असली उदाहरणों के साथ)

2 नवंबर, 2026

कोई भी यूज़र एजेंट स्ट्रिंग पढ़ना सीखें: कौन से टोकन काम के हैं, ब्राउज़र कौन से मान फ़्रीज़ करते हैं और बॉट कैसे जाँचें। पार्सर के असली नती..

CSS मिनिफाई कैसे करें (और असल में कितनी बचत होती है)

31 अक्टूबर, 2026

फ़्री टूल से सेकंडों में CSS मिनिफाई करें, gzip और Brotli के बाद असली बचत देखें, और वे ग़लतियाँ टालें जो चुपचाप स्टाइल तोड़ देती हैं। असली ट..

Base64 डिकोड कैसे करें: टेक्स्ट, इमेज और JWT (फ्री)

30 अक्टूबर, 2026

किसी भी Base64 स्ट्रिंग को सेकंडों में डिकोड करें: टेक्स्ट, इमेज, JWT और Basic Auth के असली उदाहरण, अजीब कैरेक्टर क्यों आते हैं और उन्हें कै..