# एन्कोड / डिकोड

URL: https://discuvr.org/encode-decode/?hl=hi
Last updated: 2026-11-07
MCP tool: `encode_decode_text`

टाइप करते ही Base64, Base64URL, URL परसेंट-एन्कोडिंग, HTML एंटिटी और hex को एन्कोड या डिकोड करें। पूरा UTF-8, छूटी पैडिंग की सूचना, कुछ भी सेव नहीं।

लॉग में कोई टोकन, रीडायरेक्ट में क्वेरी स्ट्रिंग, &amp; से भरा ईमेल: काम में एन्कोड किया गया टेक्स्ट हर जगह मिलता है। उसे यहाँ पेस्ट करें, फ़ॉर्मेट चुनें और टाइप करते ही एन्कोड या डिकोड किया गया नतीजा देखें।

## यह क्या करता है

- Base64, Base64URL (JWT जैसा, बिना पैडिंग), URL परसेंट-एन्कोडिंग, HTML एंटिटी और hex.
- पूरा UTF-8: हिंदी, चीनी, लहजे वाले अक्षर और इमोजी आने-जाने में सुरक्षित रहते हैं।
- Base64 की छूटी पैडिंग जोड़ी जाती है और बताई जाती है, कभी चुपचाप ठीक नहीं की जाती।
- जो बाइट टेक्स्ट नहीं हैं, वे बिगड़े अक्षरों की जगह hex में दिखते हैं।
- एक क्लिक में आउटपुट को फिर से इनपुट बनाकर दिशा उलटें।

## यह कैसे काम करता है

1. फ़ॉर्मेट चुनें और तय करें कि एन्कोड करना है या डिकोड।
2. अपना टेक्स्ट पेस्ट करें - टाइप करते ही नतीजा अपडेट होता है।
3. आउटपुट कॉपी करें या उसे अगले इनपुट के रूप में इस्तेमाल करें।

## उदाहरण: JWT पढ़ना

JSON Web Token डॉट से जुड़े तीन Base64URL हिस्से होते हैं: हेडर, पेलोड और सिग्नेचर। बीच वाला हिस्सा पेस्ट करें, Base64URL चुनें और डिकोड करें, तो आपको JSON क्लेम दिखेंगे, जैसे यूज़र id और exp समाप्ति समय (एक Unix टाइमस्टैम्प जिसे Unix टाइमस्टैम्प कन्वर्टर से पढ़ सकते हैं)। डिकोड करना सत्यापन नहीं है: JWT का पेलोड कोई भी पढ़ सकता है, और सर्वर पर सिग्नेचर की जाँच ही साबित करती है कि उसे बदला नहीं गया।

## काम में परेशानी देने वाले मामले

पैडिंग हटाया हुआ Base64, जो कुछ सिस्टम जगह बचाने के लिए करते हैं, सख़्त डिकोडर में फेल होता है; यह टूल छूटे = चिह्न जोड़ता है और आपको बताता है। कई सर्वर क्वेरी स्ट्रिंग में + को स्पेस मानते हैं, इसलिए लिंक में बिना एन्कोड किए पेस्ट किया गया Base64 मान बिगड़कर पहुँचता है; उसे URL कंपोनेंट की तरह एन्कोड करें या Base64URL इस्तेमाल करें। दो बार एन्कोड किया गया टेक्स्ट %2520 या &amp;amp; जैसा दिखता है और उसे दो बार डिकोड करना पड़ता है।

## हर डिकोडर क्या स्वीकार करता है

Base64 डिकोडिंग स्पेस और लाइन ब्रेक को अनदेखा करती है, इसलिए ईमेल की तरह कई पंक्तियों में टूटा मान जैसा पेस्ट किया गया वैसा ही डिकोड होता है। Base64URL डिकोडिंग + और / भी स्वीकार करती है, पर सामान्य Base64 - और _ को अस्वीकार करता है, इसलिए JWT के हिस्से के लिए Base64URL विकल्प चुनें। Hex डिकोडिंग स्पेस, कोलन, कॉमा, डैश और 0x प्रीफ़िक्स छोड़ देती है, इसलिए 48:65:6c:6c:6f और 0x48 0x65 दोनों चलते हैं। URL डिकोडिंग + को स्पेस में बदलती है, इसलिए असली प्लस चिह्न %2B के रूप में आना चाहिए। HTML एन्कोडिंग पाँच अक्षरों & < > " और ' को एस्केप करती है; HTML डिकोडिंग &nbsp; और &hellip; जैसी हर HTML5 नामित एंटिटी और रुपये के चिह्न के लिए &#8377; जैसी संख्यात्मक एंटिटी समझती है।

## हल किए गए उदाहरण: हर फ़ॉर्मैट क्या बनाता है

यहाँ URL एन्कोडिंग एक ही वैल्यू को एन्कोड करती है, जैसे एक क्वेरी पैरामीटर, इसलिए हर आरक्षित अक्षर एस्केप होता है: https://example.com/a b?x=1&y=2 बन जाता है https%3A%2F%2Fexample.com%2Fa%20b%3Fx%3D1%26y%3D2. लिंक में डाली जाने वाली वैल्यू को ही एन्कोड करें, पूरे लिंक को कभी नहीं. ASCII के बाहर का टेक्स्ट अपने UTF-8 बाइट्स के रूप में एन्कोड होता है: café ₹ बन जाता है caf%C3%A9%20%E2%82%B9, और हेक्स वही बाइट्स दिखाता है, é को c3 a9 और ₹ को e2 82 b9. user:pass का Base64 dXNlcjpwYXNz है, यही वैल्यू HTTP Basic Authorization हेडर में जाती है (RFC 7617), इसलिए जो भी वह हेडर देखे वह पासवर्ड पढ़ सकता है.

## प्रश्न

**मेरे डिकोड किए टेक्स्ट में Ã© जैसे अजीब अक्षर क्यों दिखते हैं?**

बाइट UTF-8 थे, लेकिन एन्कोड होने से पहले कहीं उन्हें Latin-1 या Windows-1252 के रूप में पढ़ा गया। यहाँ डिकोडिंग बाइट को जैसे हैं वैसे दिखाती है; सुधार उस सिस्टम में होना चाहिए जिसने उन्हें बनाया।

**क्या मैं पूरी फ़ाइल डिकोड कर सकता हूँ?**

2,00,000 अक्षरों तक का टेक्स्ट पेस्ट करें। इमेज जैसी बाइनरी फ़ाइलों के डिकोड किए बाइट डाउनलोड बनने की जगह hex में दिखाए जाते हैं।

**क्या Base64 एन्क्रिप्शन है?**

नहीं। Base64 सिर्फ़ बाइट लिखने का तरीका बदलता है ताकि वे सादा टेक्स्ट चाहने वाले सिस्टम से सुरक्षित निकल सकें। इसे कोई भी डिकोड कर सकता है; पासवर्ड या कोई राज़ छिपाने के लिए इसका इस्तेमाल कभी न करें।

**Base64 और Base64URL में क्या अंतर है?**

Base64URL "+" और "/" की जगह "-" और "_" लगाता है और आमतौर पर "=" पैडिंग हटा देता है, ताकि नतीजा URL और फ़ाइल नामों में सुरक्षित रहे। JSON Web Token इसी का इस्तेमाल करते हैं।

**क्या मेरा टेक्स्ट सेव होता है?**

नहीं। उसे उसी अनुरोध में बदलकर लौटा दिया जाता है और कभी डेटाबेस या लॉग में नहीं लिखा जाता।

**URL-एन्कोड किया गया आउटपुट JavaScript के encodeURIComponent से अलग क्यों है?**

यह टूल ! ' ( ) और * को भी एस्केप करता है, जिन्हें encodeURIComponent वैसे ही छोड़ देता है, इसलिए it's (50%) off! बन जाता है it%27s%20%2850%25%29%20off%21. दोनों रूप डिकोड होकर एक ही टेक्स्ट देते हैं, और क्वेरी वैल्यू के अंदर इन अक्षरों को एस्केप करना हमेशा सुरक्षित है. स्पेस %20 बनता है, + नहीं; + वाला रूप HTML फ़ॉर्म एन्कोडिंग से आता है, और यहाँ का डिकोडर दोनों पढ़ लेता है.

**कमांड लाइन पर टेक्स्ट को Base64 में एन्कोड या डिकोड कैसे करें?**

Linux या Mac पर echo -n 'Hello, World' | base64 से SGVsbG8sIFdvcmxk मिलता है, और echo 'SGVsbG8sIFdvcmxk' | base64 --decode उसे वापस टेक्स्ट बना देता है। -n छोड़ देने पर echo एक नई लाइन जोड़ देता है जो भी एन्कोड हो जाती है, और नतीजा SGVsbG8sIFdvcmxkCg== आता है: दो टूल के अलग नतीजे देने की सबसे आम वजह यही है। PowerShell में [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('Hello, World')) एन्कोड करता है और [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8sIFdvcmxk')) डिकोड करता है। यह पेज ठीक वही अक्षर UTF-8 में एन्कोड करता है जो आप पेस्ट करते हैं, और कोई नई लाइन नहीं जोड़ता।

**Base64 इमेज या data URI को डिकोड कैसे करें?**

सिर्फ़ कॉमा के बाद वाला हिस्सा पेस्ट करें: data:image/png;base64,iVBORw0KGgo... में वह iVBORw0KGgo... है, क्योंकि data:image/png;base64, वाला प्रीफ़िक्स Base64 नहीं है और पूरी स्ट्रिंग अस्वीकार हो जाती है। Base64 और Decode चुनें। जो बाइट टेक्स्ट नहीं हैं वे तस्वीर बनने की जगह hex में दिखते हैं, और फ़ाइल का प्रकार पहचानने के लिए इतना काफ़ी है: PNG की शुरुआत 89 50 4e 47 से, JPEG की ff d8 ff से और पूरी .docx, .xlsx या किसी और ZIP-आधारित फ़ाइल की 50 4b 03 04 से होती है। इमेज ख़ुद देखने के लिए पूरा data URI ब्राउज़र के एड्रेस बार में पेस्ट करें। इनपुट की सीमा 2,00,000 अक्षर है, यानी लगभग 1,50,000 बाइट की फ़ाइल।

**Base64 मूल से लगभग एक-तिहाई लंबा क्यों होता है?**

Base64 हर 3 बाइट को 4 अक्षरों में लिखता है और आख़िरी समूह को 4 के गुणज तक = से भरता है (RFC 4648), इसलिए आउटपुट इनपुट बाइट का 4/3 होता है, ऊपर की ओर पूर्णांकित। Hello, World 12 बाइट है और 16 अक्षरों वाला SGVsbG8sIFdvcmxk बनता है। गिनती UTF-8 बाइट में होती है, अक्षरों में नहीं: café 4 अक्षर पर 5 बाइट है और Y2Fmw6k= बनता है, और ₹100 6 बाइट है और 4oK5MTAw बनता है। हिंदी का हर अक्षर UTF-8 में 3 बाइट लेता है, इसलिए हिंदी टेक्स्ट का Base64 अक्षरों की गिनती से कहीं लंबा होता है। ईमेल अटैचमेंट थोड़े और बढ़ते हैं, क्योंकि MIME Base64 को अधिकतम 76 अक्षरों की पंक्तियों में तोड़ता है (RFC 2045); यह पेज डिकोड करते समय उन लाइन ब्रेक को अनदेखा करता है। बिना पैडिंग वाला Base64URL सिर्फ़ = चिह्न बचाता है।

## डेवलपर टूल में और

- [Unix टाइमस्टैम्प कन्वर्टर](https://discuvr.org/timestamp-converter/?hl=hi)
- [सिस्टम डायग्राम मेकर](https://discuvr.org/system-diagram/?hl=hi)
- [JSON फ़ॉर्मेटर](https://discuvr.org/json-formatter/?hl=hi)
- [Python फ़ॉर्मेटर](https://discuvr.org/python-formatter/?hl=hi)

## अक्सर इनके साथ इस्तेमाल होता है

- [पासवर्ड जनरेटर](https://discuvr.org/password-generator/?hl=hi)

---

Part of Discuvr (https://discuvr.org/): Discuvr is a collection of free, focused tools for day-to-day professional work - office and data utilities, legal and compliance helpers, privacy and security checks, and developer formatters. Every tool has its own page, and most can also be called from ChatGPT or Claude over MCP.
