Base91 एनकोडर और डिकोडर

टेक्स्ट, हेक्स बाइट या फ़ाइलों को basE91 में बदलें और वापस पाएँ। basE91 बाइनरी डेटा को 91 प्रिंट करने योग्य ASCII अक्षरों में समेटता है और Base64 या Base85 से छोटा आउटपुट देता है।

पूरी तरह आपके ब्राउज़र में चलता है। कुछ भी अपलोड नहीं होता।

उपयोग कैसे करें

  1. टेक्स्ट या बाइट को basE91 में बदलने के लिए “एनकोड करें” चुनें, या basE91 को वापस डेटा में बदलने के लिए “डिकोड करें” चुनें।
  2. अपना इनपुट टाइप या पेस्ट करें, या कोई फ़ाइल खोलें। रॉ बाइट के लिए इनपुट को “हेक्स” पर करें।
  3. टाइप करते ही परिणाम अपडेट होता जाता है। डिकोड करते समय “टेक्स्ट” या “हेक्स” आउटपुट चुनें।
  4. परिणाम कॉपी करें या उसे फ़ाइल के रूप में डाउनलोड करें।

basE91 क्या है?

basE91 एक बाइनरी-से-टेक्स्ट एनकोडिंग है, जिसे Joachim Henke ने बनाया है। यह 95 प्रिंट करने योग्य ASCII अक्षरों में से 91 का उपयोग करती है: स्पेस, एपॉस्ट्रॉफ़ी ', हाइफ़न - और बैकस्लैश \ को छोड़कर बाकी सभी।

यह बाइट के निश्चित ब्लॉक पर काम नहीं करती। एनकोडर इनपुट के बिट एक बफ़र में जमा करता है और एक बार में उनमें से 13 बिट लेता है। अगर 13-बिट मान 88 से बड़ा है, तो उसे दो अक्षरों के रूप में लिखा जाता है। अगर वह 88 या उससे कम है, तो एक 14वाँ बिट भी ले लिया जाता है, जो फिर भी समा जाता है, क्योंकि आधार 91 के दो अक्षर 91 × 91 = 8281 अलग-अलग मान दर्शा सकते हैं। इस तरह हर 13 या 14 बिट ठीक 2 अक्षर बनते हैं।

नतीजतन ओवरहेड अधिकतम लगभग 23% होता है, और शून्य बाइट के लंबे सिलसिलों वाले डेटा के लिए यह लगभग 14% तक घट जाता है। रैंडम या कंप्रेस किया गया डेटा ऊपरी सीमा के क़रीब रहता है।

basE91 की दूसरी एनकोडिंग से तुलना

एनकोडिंगअक्षरआउटपुट का आकार
हेक्स162 × इनपुट
Base5858लगभग 1.37 × इनपुट
Base64641.33 × इनपुट
Base85 / Ascii85851.25 × इनपुट
basE9191लगभग 1.14 से 1.23 × इनपुट

अपने डेटा के लिए असली आउटपुट लंबाइयों की तुलना करने के लिए उसे सभी एनकोडिंग टूल में टाइप करें।

ध्यान रखने योग्य बातें

  • एस्केपिंग। इस वर्णमाला में डबल कोट " है, जिसे JSON और ज़्यादातर स्ट्रिंग लिटरल में एस्केप करना पड़ता है, और <, > व & भी हैं, जिन्हें HTML और XML में एस्केप करना पड़ता है। basE91 URL-सुरक्षित नहीं है।
  • पूरी स्ट्रिंग डिकोड करें। बिट अक्षरों की सीमाओं के आर-पार फैले होते हैं, इसलिए basE91 स्ट्रिंग के बीच से काटा गया कोई टुकड़ा अलग से डिकोड नहीं किया जा सकता।
  • समर्थन। basE91 कोई IETF मानक नहीं है। इसके लेखक C और दूसरी भाषाओं में रेफ़रेंस इम्प्लीमेंटेशन प्रकाशित करते हैं, और ज़्यादातर प्लेटफ़ॉर्म के लिए पोर्ट उपलब्ध हैं, जैसे Python के लिए base91 पैकेज।

तकनीकी विवरण

वर्णमाला91 प्रिंट करने योग्य ASCII अक्षर
आउटपुट का आकारलगभग 123%
पैडिंगकोई नहीं
मानकbasE91 (Joachim Henke)
केस-संवेदीहाँ

उदाहरण

इनपुट (UTF-8)आउटपुट
Hello, World!>OwJh>}AQ;r@@Y?F
Base64.isxD7gXm^?t#5
你好I_5k7aPE

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

क्या basE91 का आउटपुट Base64 से छोटा होता है?

हाँ। Base64 हमेशा 33% जोड़ता है, जबकि basE91 अधिकतम लगभग 23% जोड़ता है, और बहुत सारे शून्य बाइट वाले डेटा के लिए इससे भी कम। 1 MB की फ़ाइल पर इससे लगभग 100 KB की बचत होती है।

basE91 कौन-से अक्षर इस्तेमाल करता है?
लैटिन अक्षर A-Z और a-z, अंक 0-9 और चिह्न !#$%&()*+,./:;<=>?@[]^_`{|}~"। स्पेस, एपॉस्ट्रॉफ़ी, हाइफ़न और बैकस्लैश का उपयोग नहीं होता।
इसे basE91 क्यों लिखा जाता है?

इसके लेखक इसका नाम इसी तरह लिखते हैं। basE91 और Base91 एक ही एनकोडिंग के नाम हैं, और यह पेज मूल एल्गोरिदम का पालन करता है।

क्या व्हाइटस्पेस से डिकोडिंग बिगड़ती है?

नहीं। स्पेस और लाइन ब्रेक वर्णमाला का हिस्सा नहीं हैं, इसलिए यहाँ का डिकोडर उन्हें अनदेखा करता है। आप रैप किया हुआ basE91 टेक्स्ट सीधे पेस्ट कर सकते हैं।