उपयोग कैसे करें
- टेक्स्ट को Base36 में बदलने के लिए “एनकोड करें” चुनें, या Base36 को वापस टेक्स्ट में बदलने के लिए “डिकोड करें”।
- अपना इनपुट टाइप या पेस्ट करें, या कोई छोटी फ़ाइल (लगभग 20 KB तक) खोलें।
- अगर आपको आउटपुट में बड़े अक्षर चाहिए, तो “बड़े अक्षर” चालू करें।
- परिणाम कॉपी करें या उसे फ़ाइल के रूप में डाउनलोड करें।
Base36 क्या है?
Base36 डेटा को दस अंकों और लैटिन वर्णमाला के 26 अक्षरों से लिखता है, यानी 0-9 और उसके बाद a-z। अक्षरों के केस को अनदेखा करते हुए अंकों और अक्षरों से बनाई जा सकने वाली यह सबसे बड़ी वर्णमाला है, इसलिए Base36 स्ट्रिंग उन सिस्टम में भी सुरक्षित रहती हैं जो केस बदल देते हैं या उसे अनदेखा करते हैं। हर अक्षर में लगभग 5.17 बिट होते हैं, जिससे आउटपुट इनपुट के आकार का लगभग 1.55 गुना होता है, यानी Base32 से थोड़ा छोटा।
चूँकि 36 दो की घात नहीं है, इसलिए बाइट को सीधे बिट समूहों में नहीं काटा जा सकता। इसके बजाय टूल पूरे इनपुट को एक बड़ी अनसाइन्ड संख्या के रूप में पढ़ता है और उसे आधार 36 में बदलता है, ठीक उसी तरीक़े से जिसका उपयोग Base58 करता है। संख्या में शुरुआती शून्य बाइट खो जाते, इसलिए हर ऐसे बाइट को आगे एक 0 के रूप में लिखा जाता है और डिकोड करते समय वापस लाया जाता है। बड़े इनपुट पर यह गणना धीमी हो जाती है, इसलिए टूल लगभग 20 KB तक ही स्वीकार करता है।
Base36 का उपयोग कहाँ होता है
- छोटी ID। URL शॉर्टनर, ऑर्डर नंबर और टिकट कोड अक्सर डेटाबेस की संख्यात्मक ID को आधार 36 में दिखाते हैं। उदाहरण के लिए, Reddit अपनी पोस्ट और कमेंट ID के लिए आधार 36 का उपयोग करता है।
- केस-असंवेदी जगहें। DNS नाम और कुछ फ़ाइल सिस्टम अक्षरों के केस को अनदेखा करते हैं। इसी कारण IPFS सबडोमेन गेटवे पतों में कुछ पहचानकर्ताओं के Base36 रूप का उपयोग करता है।
- कोड में संख्याएँ। ज़्यादातर प्रोग्रामिंग भाषाएँ पूर्णांक रूपांतरण के लिए जिस सबसे बड़े आधार का सीधे समर्थन करती हैं, वह आधार 36 है।
अगर अक्षरों का केस बना रहता है और आपको सबसे छोटी अल्फ़ान्यूमेरिक स्ट्रिंग चाहिए, तो Base62 ज़्यादा संक्षिप्त है।
कोड में Base36 संख्याएँ
यह पेज बाइट एनकोड करता है। किसी पूर्णांक को बदलने के लिए अपनी भाषा के बिल्ट-इन फ़ंक्शन या नंबर बेस कन्वर्टर का उपयोग करें:
// JavaScript
(1000000).toString(36) // 'lfls'
parseInt('lfls', 36) // 1000000
123456789012345678901234567890n.toString(36) // बड़े मानों के लिए BigInt
# Python
int('lfls', 36) # 1000000
# उल्टी दिशा के लिए कोई बिल्ट-इन फ़ंक्शन नहीं है
Number.MAX_SAFE_INTEGER से बड़े मानों पर parseInt की सटीकता खो जाती है; बड़े मानों के लिए अंकों को स्वयं किसी BigInt में जोड़ें।
तकनीकी विवरण
| वर्णमाला | 0-9 a-z |
|---|---|
| आउटपुट का आकार | लगभग 155% (बड़ी संख्या का रूपांतरण) |
| पैडिंग | कोई नहीं |
| मानक | कोई औपचारिक मानक नहीं |
| केस-संवेदी | नहीं |
उदाहरण
| इनपुट (UTF-8) | आउटपुट |
|---|---|
Hello, World! | fg3h7vqw7een6jwwnzmp |
Base64.is | 76f8bz4veeatf7 |
你好 | 2h5exfqm65 |
अक्सर पूछे जाने वाले प्रश्न
क्या Base36 केस-संवेदी है?
नहीं। आउटपुट डिफ़ॉल्ट रूप से छोटे अक्षरों में होता है, और “बड़े अक्षर” विकल्प उसे बड़े अक्षरों में बदल देता है। डिकोडर दोनों में से कोई भी केस स्वीकार करता है।
कोई दूसरा टूल अलग Base36 परिणाम क्यों देता है?
Base36 का कोई औपचारिक मानक नहीं है। कुछ टूल एक संख्या एनकोड करते हैं, कुछ बाइट, और वे शुरुआती शून्य बाइट को अलग-अलग तरह से संभालते हैं। यह टूल इनपुट बाइट को एक बड़ी संख्या के रूप में एनकोड करता है और हर शुरुआती शून्य बाइट को 0 के रूप में लिखता है।