طريقة الاستخدام
- اختر «ترميز» لتحويل النص أو البايتات إلى basE91، أو «فك الترميز» لإعادة basE91 إلى بيانات.
- اكتب المدخلات أو الصقها، أو افتح ملفًا. غيّر «صيغة المدخلات» إلى «ست عشري» للبايتات الخام.
- تتحدّث النتيجة فور الكتابة. وعند فك الترميز، اختر «نص» أو «ست عشري» في «صيغة المخرجات».
- انسخ النتيجة أو نزّلها كملف.
ما هو basE91؟
basE91 ترميز لتحويل البيانات الثنائية إلى نص صمّمه Joachim Henke. يستخدم 91 حرفًا من أحرف ASCII القابلة للطباعة البالغ عددها 95: جميعها باستثناء المسافة وعلامة الاقتباس المفردة ' والشرطة - والشرطة المائلة العكسية \.
لا يعمل هذا الترميز على كتل ثابتة من البايتات، بل يجمع المُرمِّز بتات المدخلات في مخزن مؤقت ويأخذ منها 13 بتًا في كل مرة. فإذا كانت القيمة المكوّنة من 13 بت أكبر من 88، تُكتب على هيئة حرفين. وإذا كانت 88 أو أقل، يُؤخذ بت رابع عشر أيضًا، ويظل ذلك ممكنًا لأن حرفين بالأساس 91 يمكنهما التعبير عن 91 × 91 = 8281 قيمة مختلفة. وهكذا تصبح كل 13 أو 14 بتًا حرفين بالضبط.
والنتيجة زيادة في الحجم لا تتجاوز نحو 23%، وقد تنخفض إلى نحو 14% للبيانات التي تحتوي على سلاسل طويلة من البايتات الصفرية. أما البيانات العشوائية أو المضغوطة فتقترب من الحد الأعلى.
مقارنة basE91 بالترميزات الأخرى
| الترميز | عدد الأحرف | حجم المخرجات |
|---|---|---|
| ست عشري | 16 | 2 × المدخلات |
| Base58 | 58 | نحو 1.37 × المدخلات |
| Base64 | 64 | 1.33 × المدخلات |
| Base85 / Ascii85 | 85 | 1.25 × المدخلات |
| basE91 | 91 | من نحو 1.14 إلى 1.23 × المدخلات |
لمقارنة أطوال المخرجات الفعلية لبياناتك، اكتبها في صفحة جميع الترميزات.
أمور ينبغي مراعاتها
- التهريب. تحتوي الأبجدية على علامة الاقتباس المزدوجة
"التي يجب تهريبها في JSON وفي معظم السلاسل الحرفية، وعلى<و>و&التي يجب تهريبها في HTML وXML. وbasE91 ليس آمنًا لعناوين URL. - فك ترميز السلسلة كاملة. لأن البتات تمتد عبر حدود الأحرف، لا يمكن فك ترميز جزء مقتطع من منتصف سلسلة basE91 بمفرده.
- الدعم. basE91 ليس معيارًا صادرًا عن IETF. ينشر مؤلفه تطبيقات مرجعية بلغة C ولغات أخرى، وتوجد نسخ منقولة منه لمعظم المنصات، مثل حزمة
base91في Python.
المواصفات
| الأبجدية | 91 حرفًا من أحرف ASCII القابلة للطباعة |
|---|---|
| حجم المخرجات | نحو 123% |
| الحشو | لا يوجد |
| المعيار | basE91 (Joachim Henke) |
| حساس لحالة الأحرف | نعم |
أمثلة
| المدخلات (UTF-8) | المخرجات |
|---|---|
Hello, World! | >OwJh>}AQ;r@@Y?F |
Base64.is | xD7gXm^?t#5 |
你好 | I_5k7aPE |
الأسئلة الشائعة
هل basE91 أصغر من Base64؟
نعم. يضيف Base64 دائمًا 33%، بينما لا يضيف basE91 أكثر من نحو 23%، وأقل من ذلك للبيانات التي تحتوي على كثير من البايتات الصفرية. ففي ملف بحجم 1 ميغابايت، يعني ذلك توفير نحو 100 كيلوبايت.
ما الأحرف التي يستخدمها basE91؟
A-Z وa-z والأرقام 0-9 والرموز !#$%&()*+,./:;<=>?@[]^_`{|}~". ولا تُستخدم المسافة وعلامة الاقتباس المفردة والشرطة والشرطة المائلة العكسية.لماذا يُكتب الاسم basE91؟
هكذا يكتب مؤلفه الاسم. ويشير basE91 وBase91 إلى الترميز نفسه، وتتبع هذه الصفحة الخوارزمية الأصلية.
هل تُفسد المسافات البيضاء فك الترميز؟
لا. المسافات وفواصل الأسطر ليست جزءًا من الأبجدية، لذا تتجاهلها أداة فك الترميز هنا. ويمكنك لصق نص basE91 الملفوف مباشرة.