أداة ترميز Base91 وفك ترميزه

حوّل النصوص أو البايتات الست عشرية أو الملفات إلى basE91 وبالعكس. يمثّل basE91 البيانات الثنائية باستخدام 91 حرفًا من أحرف ASCII القابلة للطباعة، ويعطي مخرجات أقصر من Base64 أو Base85.

تعمل بالكامل داخل متصفحك، ولا يُرفع أي شيء.

طريقة الاستخدام

  1. اختر «ترميز» لتحويل النص أو البايتات إلى basE91، أو «فك الترميز» لإعادة basE91 إلى بيانات.
  2. اكتب المدخلات أو الصقها، أو افتح ملفًا. غيّر «صيغة المدخلات» إلى «ست عشري» للبايتات الخام.
  3. تتحدّث النتيجة فور الكتابة. وعند فك الترميز، اختر «نص» أو «ست عشري» في «صيغة المخرجات».
  4. انسخ النتيجة أو نزّلها كملف.

ما هو basE91؟

basE91 ترميز لتحويل البيانات الثنائية إلى نص صمّمه Joachim Henke. يستخدم 91 حرفًا من أحرف ASCII القابلة للطباعة البالغ عددها 95: جميعها باستثناء المسافة وعلامة الاقتباس المفردة ' والشرطة - والشرطة المائلة العكسية \.

لا يعمل هذا الترميز على كتل ثابتة من البايتات، بل يجمع المُرمِّز بتات المدخلات في مخزن مؤقت ويأخذ منها 13 بتًا في كل مرة. فإذا كانت القيمة المكوّنة من 13 بت أكبر من 88، تُكتب على هيئة حرفين. وإذا كانت 88 أو أقل، يُؤخذ بت رابع عشر أيضًا، ويظل ذلك ممكنًا لأن حرفين بالأساس 91 يمكنهما التعبير عن 91 × 91 = 8281 قيمة مختلفة. وهكذا تصبح كل 13 أو 14 بتًا حرفين بالضبط.

والنتيجة زيادة في الحجم لا تتجاوز نحو 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 ولغات أخرى، وتوجد نسخ منقولة منه لمعظم المنصات، مثل حزمة base91 في Python.

المواصفات

الأبجدية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 ميغابايت، يعني ذلك توفير نحو 100 كيلوبايت.

ما الأحرف التي يستخدمها basE91؟
الأحرف A-Z وa-z والأرقام 0-9 والرموز !#$%&()*+,./:;<=>?@[]^_`{|}~". ولا تُستخدم المسافة وعلامة الاقتباس المفردة والشرطة والشرطة المائلة العكسية.
لماذا يُكتب الاسم basE91؟

هكذا يكتب مؤلفه الاسم. ويشير basE91 وBase91 إلى الترميز نفسه، وتتبع هذه الصفحة الخوارزمية الأصلية.

هل تُفسد المسافات البيضاء فك الترميز؟

لا. المسافات وفواصل الأسطر ليست جزءًا من الأبجدية، لذا تتجاهلها أداة فك الترميز هنا. ويمكنك لصق نص basE91 الملفوف مباشرة.