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

حوّل النصوص أو البايتات الست عشرية أو الملفات إلى Base36، وهو أبجدية من عشرة أرقام و26 حرفًا، وفك ترميز سلاسل Base36 إلى بايتات. والمخرجات بالأحرف الكبيرة اختيارية.

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

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

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

ما هو Base36؟

يكتب Base36 البيانات بالأرقام العشرة وبحروف الأبجدية اللاتينية الستة والعشرين، أي 0-9 تليها a-z. وهي أكبر أبجدية يمكن بناؤها من الأرقام والحروف مع تجاهل حالة الأحرف، لذا تبقى سلاسل Base36 سليمة في الأنظمة التي تغيّر حالة الأحرف أو تتجاهلها. يحمل كل حرف نحو 5.17 بت، ما يجعل المخرجات نحو 1.55 ضعف حجم المدخلات، أي أقصر قليلًا من Base32.

ولأن 36 ليس من قوى العدد اثنين، لا يمكن ببساطة تقطيع البايتات إلى مجموعات من البتات. بل تقرأ الأداة المدخلات كلها بوصفها عددًا كبيرًا واحدًا بلا إشارة وتحوّله إلى الأساس 36، وهي الطريقة نفسها التي يستخدمها Base58. وبما أن العدد يفقد بايتات الصفر البادئة، يُكتب كل منها في صورة 0 بادئ ويُستعاد عند فك الترميز. وتصبح هذه العمليات الحسابية بطيئة مع المدخلات الكبيرة، لذا تقبل الأداة ما يصل إلى نحو 20 كيلوبايت.

أين يُستخدم Base36

  • المعرّفات القصيرة. كثيرًا ما تعرض خدمات اختصار الروابط وأرقام الطلبات ورموز التذاكر معرّف قاعدة البيانات الرقمي بالأساس 36. فموقع Reddit مثلًا يستخدم الأساس 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
# لا توجد دالة مدمجة للاتجاه المعاكس

تفقد parseInt الدقة فوق Number.MAX_SAFE_INTEGER؛ وللقيم الأكبر، اجمع الأرقام في BigInt بنفسك.

المواصفات

الأبجدية0-9 a-z
حجم المخرجاتنحو 155% (تحويل الأعداد الكبيرة)
الحشولا يوجد
المعيارلا يوجد معيار رسمي
حساس لحالة الأحرفلا

أمثلة

المدخلات (UTF-8)المخرجات
Hello, World!fg3h7vqw7een6jwwnzmp
Base64.is76f8bz4veeatf7
你好2h5exfqm65

الأسئلة الشائعة

هل Base36 حساس لحالة الأحرف؟

لا. تكون المخرجات بالأحرف الصغيرة افتراضيًا، ويحوّلها خيار «أحرف كبيرة» إلى الحروف الكبيرة. وتقبل أداة فك الترميز الحالتين.

لماذا تعطي أداة أخرى نتيجة Base36 مختلفة؟

ليس لـ Base36 معيار رسمي. فبعض الأدوات ترمّز عددًا، وبعضها يرمّز بايتات، وتتعامل مع بايتات الصفر البادئة بطرق مختلفة. وترمّز هذه الأداة بايتات المدخلات بوصفها عددًا كبيرًا واحدًا، وتكتب كل بايت صفري بادئ في صورة 0.

هل يوجد حد للحجم؟
نعم، نحو 20 كيلوبايت، لأن تحويل الأعداد الكبيرة يستغرق وقتًا أطول كلما كبرت المدخلات. وللملفات والبيانات الكبيرة، يكون Base32 أو Base64 أنسب.
كيف أحوّل عددًا إلى Base36؟
استخدم محوّل أنظمة الأعداد، الذي يعرض القيمة العشرية بصيغة Base36 وبأنظمة أخرى. أما هذه الصفحة فتعامل المدخلات بوصفها نصًا أو بايتات، لذا فإن كتابة 100 ترمّز الأحرف 1 و0 و0، لا العدد مئة.