query-string मान बनाना
कोई भी उपयोगकर्ता इनपुट जिसे आप ?q=... में डालते हैं, उसे Component मोड से एनकोड किया जाना चाहिए। URI मोड = और & को कच्चा छोड़ देगा, जिससे जब मान में वे हों तो आपका URL टूट जाएगा।
किसी भी टेक्स्ट को percent-encoded URL-सुरक्षित स्ट्रिंग में एनकोड करें, या एनकोडेड URL को वापस सादे टेक्स्ट में डिकोड करें। लाइव प्रीव्यू, UTF-8 सुरक्षित, और पूरी तरह आपके ब्राउज़र में चलता है।
Component (encodeURIComponent) उन सभी अक्षरों को एस्केप करता है जो unreserved नहीं हैं — query-string मान, path segments, या किसी भी एकल फ़ील्ड के लिए सबसे सुरक्षित। URI (encodeURI) URL संरचना अक्षरों (:/?#=&) को संरक्षित करता है — इसे पूरे URL पर उपयोग करें। Form (application/x-www-form-urlencoded) Component + spaces '+' बन जाते हैं — जो HTML फ़ॉर्म उपयोग करते हैं।
RFC 3986 "unreserved" अक्षरों का एक सेट परिभाषित करता है जिन्हें एनकोडिंग की आवश्यकता नहीं होती: A-Z a-z 0-9 - _. ~। बाक़ी सब percent-encoded होता है। encodeURIComponent अतिरिक्त रूप से :/?#&= को एनकोड करता है जिन्हें encodeURI छोड़ देता है। यह अंतर तब मायने रखता है जब आप query मान बनाम पूरे URL को एनकोड कर रहे हों।
यहाँ टेक्स्ट फ़ाइल छोड़ें, या ब्राउज़ करने के लिए क्लिक करें
कोई भी UTF-8 टेक्स्ट फ़ाइल:.txt,.csv,.json,.url,.log
तेज़, सटीक, केवल ब्राउज़र में — डेवलपर्स, कॉपीराइटर्स, और URL डिबग करने वाले किसी भी व्यक्ति के लिए बनाया गया।
आप जो एनकोड कर रहे हैं उसके आधार पर Component, Full URI, या Form मोड चुनें — query-string मान, पूरा URL, या HTML फ़ॉर्म payload।
हर एनकोड और डिकोड आपके ब्राउज़र में नेटिव JavaScript का उपयोग करके होता है। आपका टेक्स्ट और URL कभी भी आपके डिवाइस से बाहर नहीं जाते।
हर कीस्ट्रोक पर आउटपुट अपडेट होता है — कोई "एनकोड" बटन नहीं, सर्वर पर कोई राउंड-ट्रिप नहीं।
इमोजी, CJK अक्षर, उच्चारण-चिह्न वाले लैटिन, और सिरिलिक encodeURIComponent के माध्यम से सही ढंग से राउंड-ट्रिप करते हैं।
डिकोड करते समय, वैकल्पिक रूप से '+' को स्पेस मानें — वह कन्वेंशन जो HTML फ़ॉर्म application/x-www-form-urlencoded के तहत उपयोग करते हैं।
एक चरण में एनकोड या डिकोड करने के लिए.txt,.csv, या.json फ़ाइल छोड़ें। आउटपुट साफ़.txt के रूप में डाउनलोड होता है।
तीन नेटिव ब्राउज़र API, तीन मोड, सब उसी पेज में चलते हैं जिसे आप पढ़ रहे हैं।
हर कीस्ट्रोक पर, इनपुट स्ट्रिंग एक छोटे JavaScript फ़ंक्शन को पास होती है। कोई debounce नहीं, कोई API कॉल नहीं, कोई fetch नहीं — फ़ंक्शन आपके ब्राउज़र टैब में सिंक्रोनस रूप से चलता है।
Component encodeURIComponent कॉल करता है — उन सभी को एस्केप करता है जो A-Z a-z 0-9 - _. ~ नहीं हैं। URI encodeURI कॉल करता है — :/?#=& को संरक्षित करता है ताकि पूरा URL मान्य रहे। Form encodeURIComponent का उपयोग करता है और application/x-www-form-urlencoded के अनुसार स्पेस को + से बदलता है।
encodeURIComponent और encodeURI दोनों ही प्रत्येक गैर-सुरक्षित byte को percent-encode करने से पहले स्ट्रिंग को आंतरिक रूप से UTF-8 bytes में बदलते हैं। इसका मतलब है चीनी 中 के लिए %E4%B8%AD — ठीक वैसा ही जैसा RFC 3986 आवश्यक करता है।
परिणाम read-only आउटपुट के मान के रूप में सेट हो जाता है। navigator.clipboard.writeText के माध्यम से क्लिपबोर्ड पर रखने के लिए Copy क्लिक करें, या Blob URL के माध्यम से .txt के रूप में सहेजने के लिए Download — दोनों आपके ब्राउज़र में ही रहते हैं।
वास्तविक स्थितियाँ जहाँ सही एनकोडिंग मोड बग्स को रोकता है।
कोई भी उपयोगकर्ता इनपुट जिसे आप ?q=... में डालते हैं, उसे Component मोड से एनकोड किया जाना चाहिए। URI मोड = और & को कच्चा छोड़ देगा, जिससे जब मान में वे हों तो आपका URL टूट जाएगा।
कुछ चैट ऐप्स और PDF लिंक्स को ख़राब कर देते हैं जब उनमें कच्चे स्पेस या ग़ैर-ASCII अक्षर हों। URL को URI मोड से चलाएँ ताकि वह हर जगह कॉपी-पेस्ट सुरक्षित बने।
जब आपका API किसी अनुरोध को अस्वीकार करता है, तो URL को Decode मोड में पेस्ट करें यह देखने के लिए कि सर्वर ने वास्तव में क्या देखा। डबल-एनकोडेड मान (जहाँ % स्वयं %25 के रूप में एनकोड हुआ था) तुरंत दिखाई देते हैं।
जब application/x-www-form-urlencoded में POST बॉडीज़ डिबग कर रहे हों, तो "+ as space" टॉगल चालू करके डिकोड करें। यह वही कन्वेंशन है जो ब्राउज़र उपयोग करते हैं, और इसे भूलना "मेरा यूज़रनेम प्लस चिह्नों के साथ क्यों दिख रहा है" बग्स का #1 कारण है।
आप जो URL एनकोड करते हैं उनमें अक्सर असली कस्टमर ईमेल, ID, या session tokens होते हैं — ठीक वैसा डेटा जिसे आप किसी अजनबी के सर्वर टूल में पेस्ट नहीं करना चाहते। iKit URL एनकोडर पहले से आपके ब्राउज़र में लोड JavaScript के रूप में चलता है, इसलिए इनपुट कभी आपके टैब से बाहर नहीं जाता।
fetch, XHR, या beacon नहीं।
iKit ब्लॉग से विस्तृत ट्यूटोरियल और टूल तुलनाएं।
The 30-year-old form-encoding quirk explained — when + means space, when it means literal +, and how to fix the email-with-plus bug.
When to reach for Base64 versus URL percent-encoding, and what each encoding actually solves.
Pretty-print, validate, and structurally diff messy JSON in any browser.
Component (encodeURIComponent) उन सभी अक्षरों को एस्केप करता है जो unreserved नहीं हैं — query-string मान, path segments, या किसी भी एकल फ़ील्ड के लिए सबसे सुरक्षित। URI (encodeURI) URL संरचना अक्षरों (:/?#=&) को संरक्षित करता है — इसे पूरे URL पर उपयोग करें। Form (application/x-www-form-urlencoded) Component + spaces '+' बन जाते हैं — जो HTML फ़ॉर्म उपयोग करते हैं।
RFC 3986 "unreserved" अक्षरों का एक सेट परिभाषित करता है जिन्हें एनकोडिंग की आवश्यकता नहीं होती: A-Z a-z 0-9 - _. ~। बाक़ी सब percent-encoded होता है। encodeURIComponent अतिरिक्त रूप से :/?#&= को एनकोड करता है जिन्हें encodeURI छोड़ देता है। यह अंतर तब मायने रखता है जब आप query मान बनाम पूरे URL को एनकोड कर रहे हों।
तीन सामान्य कारण: (1) मूल Form-encoded था इसलिए '+' को स्पेस माना जाना चाहिए — वह विकल्प टॉगल करें। (2) डबल-एनकोडेड — इनपुट दो बार एनकोड हुआ था; फिर से डिकोड करें। (3) अमान्य percent अनुक्रम — एक भटका हुआ % जिसके बाद दो hex अंक नहीं हैं। सटीक byte स्थिति के लिए त्रुटि संदेश देखें।
Component मोड के लिए हाँ — हम सीधे encodeURIComponent कॉल करते हैं। Form मोड RFC 3986 + WHATWG के अनुसार मानक form-encoding समायोजन जोड़ता है (! ' * %21 %27 %28 %29 %2A बन जाते हैं)। URI मोड encodeURI कॉल करता है, जो अधिकांश भाषाओं का अर्थ है 'percent-encode a URL'।
नहीं। पूरा टूल इस पेज के अंदर JavaScript है — एनकोडिंग और डिकोडिंग आपके ब्राउज़र में होती है। आप DevTools → Network खोलकर सत्यापित कर सकते हैं: एनकोड या डिकोड संचालन के दौरान कोई अनुरोध नहीं भेजा जाता।