उपयोग कैसे करें
- इनपुट बॉक्स में टेक्स्ट टाइप या पेस्ट करें।
- टाइप करते ही हर एनकोडिंग अपडेट हो जाती है: बाइनरी, ऑक्टल, दशमलव, हेक्स, Base32 के वेरिएंट, Base36 से Base91 तक, और uuencode व xxencode।
- आउटपुट की तुलना करें और देखें कि कौन-सा सबसे छोटा है या किसमें केवल वही अक्षर हैं जो आपके लिए स्वीकार्य हैं।
- जिस परिणाम की आपको ज़रूरत है, उसके बगल में “कॉपी करें” पर क्लिक करें।
एक ही इनपुट से हर एनकोडिंग
इस पेज की हर एनकोडिंग उन्हीं बाइट को अक्षरों के एक अलग सेट में बदलती है। उन्हें साथ-साथ देखना किसी प्रोजेक्ट के लिए एनकोडिंग चुनने, लॉग या कॉन्फ़िग फ़ाइल में मिली किसी स्ट्रिंग को पहचानने, या फ़ॉर्मैट के बीच का अंतर समझने का सबसे तेज़ तरीक़ा है। आपका टेक्स्ट UTF-8 बाइट के रूप में एनकोड होता है, इसलिए é जैसा एक्सेंट वाला अक्षर दो बाइट और एक चीनी अक्षर तीन बाइट गिना जाता है। सब कुछ आपके ब्राउज़र में ही चलता है।
- हर बाइट की अलग संख्या। बाइनरी, ऑक्टल और दशमलव हर बाइट को अलग से लिखते हैं। पढ़ने में आसान, लेकिन लंबे।
- बिट समूह। हेक्स, Base32 (Base32hex, Crockford और z-base-32 सहित), Base64 और Base64URL हर अक्षर को तय संख्या में बिट देते हैं, इसलिए आउटपुट की लंबाई केवल इनपुट की लंबाई पर निर्भर करती है।
- बड़ी संख्याएँ। Base36, Base58 और Base62 पूरे इनपुट को एक बड़ा पूर्णांक मानते हैं। मान के अनुसार लंबाई में एक अक्षर का अंतर आ सकता है, और शुरुआती शून्य बाइट शुरुआती अक्षरों के रूप में बचे रहते हैं।
- ब्लॉक। Base45 हर 2 बाइट को 3 अक्षरों में बदलता है, Ascii85, Z85 और Base85 हर 4 बाइट को 5 अक्षरों में, और Base91 अक्षरों की हर जोड़ी में 13 या 14 बिट भरता है।
- लाइनें। uuencode और xxencode ईमेल और Usenet के ज़माने के पुराने फ़ॉर्मैट हैं, जो डेटा को लाइनों में लिखते हैं और हर लाइन लंबाई बताने वाले एक अक्षर से शुरू होती है।
आउटपुट के आकार की तुलना
हर एनकोडिंग को प्रति इनपुट बाइट कितने अक्षर चाहिए, और 32 बाइट का कोई मान, जैसे SHA-256 हैश या Ed25519 सार्वजनिक कुंजी, कितना लंबा बनता है:
| एनकोडिंग | प्रति बाइट अक्षर | 32 बाइट से बनते हैं |
|---|---|---|
| Base16 (हेक्स) | 2.0 | 64 |
| Base32 | 1.6 | 56 (पैडिंग के बिना 52) |
| Base36 | लगभग 1.55 | 49 या 50 |
| Base45 | 1.5 | 48 |
| Base58 | लगभग 1.37 | 43 या 44 |
| Base62 | लगभग 1.34 | 42 या 43 |
| Base64 | लगभग 1.33 | 44 (पैडिंग के बिना 43) |
| Base85 | 1.25 | 40 |
| Base91 | लगभग 1.23 | 39 या 40 |
हेक्स से Base64 पर जाने से लंबाई एक तिहाई कम हो जाती है। उससे आगे, Base64 से Base91 पर जाने से केवल लगभग 8% की और बचत होती है।
कौन-सी एनकोडिंग चुनें
सबसे छोटा आउटपुट हमेशा सबसे अच्छा नहीं होता। Ascii85 में कोट और बैकस्लैश आ सकते हैं, और Base91 में डबल कोट, इसलिए JSON, HTML या शेल कमांड में दोनों को एस्केप करना पड़ सकता है। पहले सोचें कि स्ट्रिंग को कहाँ इस्तेमाल होना है:
- URL और फ़ाइल नाम: Base64URL, Base58 या Base62।
- बोलकर पढ़ने या हाथ से टाइप करने के लिए: Crockford Base32 या Base58, जो एक जैसे दिखने वाले अक्षरों को छोड़ देते हैं।
- केस-असंवेदी सिस्टम: हेक्स, Base32 या Base36।
- QR कोड: Base45, जो केवल QR के अल्फ़ान्यूमेरिक मोड वाले अक्षरों का उपयोग करता है।
- PDF, Git या ZeroMQ में कॉम्पैक्ट टेक्स्ट: Ascii85, Base85 या Z85।
- अधिकतम संगतता: Base64, जिसका समर्थन लगभग हर प्रोग्रामिंग भाषा और प्लेटफ़ॉर्म करता है।
अक्सर पूछे जाने वाले प्रश्न
कौन-सी एनकोडिंग सबसे छोटा आउटपुट देती है?
इस पेज की एनकोडिंग में Base91 सबसे कॉम्पैक्ट है, लगभग 1.23 अक्षर प्रति बाइट। उसके बाद 1.25 के साथ Ascii85, Z85 और Base85 आते हैं। Base64 को लगभग 1.33 अक्षर चाहिए, लेकिन इसका समर्थन कहीं ज़्यादा व्यापक है, इसीलिए यह आमतौर पर डिफ़ॉल्ट विकल्प होता है।
एक ही आकार के इनपुट के लिए Base58 और Base62 के परिणामों की लंबाई अलग-अलग क्यों होती है?
ये पूरे इनपुट को एक बड़ी संख्या के रूप में बदलते हैं, इसलिए लंबाई केवल आकार पर नहीं, बल्कि उसके मान पर भी निर्भर करती है। हर शुरुआती शून्य बाइट एक शुरुआती अक्षर भी जोड़ता है। हेक्स, Base32 और Base64 बाइट की समान संख्या के लिए हमेशा समान लंबाई देते हैं।
क्या इस पेज पर किसी स्ट्रिंग को डिकोड किया जा सकता है?
बाइनरी आउटपुट इतना लंबा क्यों है?
बाइनरी हर बाइट के लिए 8 अंक लिखता है, साथ में विभाजक भी, इसलिए यह हेक्स से कम से कम चार गुना लंबा होता है। यह अलग-अलग बिट देखने के लिए है, डेटा सहेजने या भेजने के लिए नहीं।
क्या मेरा टेक्स्ट किसी सर्वर पर भेजा जाता है?
नहीं। सभी एनकोडिंग की गणना आपके ब्राउज़र में JavaScript से होती है, और टेक्स्ट कभी आपके डिवाइस से बाहर नहीं जाता।