كيفية ترميز النص إلى Base64
- اكتب نصك أو الصقه في حقل الإدخال، أو افتح ملفًا.
- اختر مجموعة الأحرف (يدعم UTF-8 جميع اللغات والرموز التعبيرية)، والإخراج الآمن لعناوين URL، أو فواصل الأسطر كل 76 حرفًا إذا احتجت إليها.
- انسخ نتيجة Base64 أو نزّلها كملف نصي.
كيف يعمل ترميز Base64
يأخذ المُرمِّز نصك على هيئة بايتات، ويقسّمها إلى مجموعات من 3 بايتات (24 بت)، ثم يحوّل كل مجموعة إلى 4 أحرف من أبجدية مكوّنة من 64 حرفًا. وإذا كانت المجموعة الأخيرة ناقصة، تُضاف علامات = كحشو. لهذا يكون ناتج Base64 أكبر من المُدخل بنحو 33%: فكلمة Man تصبح TWFu.
ترميز Base64 في لغات البرمجة الشائعة
- لغة JavaScript:
btoa(String.fromCharCode(...new TextEncoder().encode(text))) - لغة Python:
base64.b64encode(text.encode()).decode() - لغة PHP:
base64_encode($text) - لغة Java:
Base64.getEncoder().encodeToString(text.getBytes(UTF_8)) - سطر الأوامر في Linux/macOS:
echo -n 'text' | base64
الأسئلة الشائعة
لماذا تكون نتيجة Base64 أطول من نصي؟
يخزّن Base64 كل 3 بايتات في 4 أحرف، لذا يبلغ حجم الناتج نحو 4/3 من حجم المُدخل، إضافةً إلى الحشو. وتشغل الأحرف غير اللاتينية من 2 إلى 4 بايتات في UTF-8، ما يجعل ناتج Base64 الخاص بها أطول.
ماذا تعني علامات = في النهاية؟
إنها علامات حشو. علامة = واحدة تعني أن المجموعة الأخيرة كانت تضم 2 بايت، وعلامتان == تعنيان أنها كانت تضم 1 بايت فقط. وغالبًا ما يحذفها Base64 الآمن لعناوين URL.
هل يمكنني ترميز الرموز التعبيرية والنصوص غير الإنجليزية؟
نعم. أبقِ مجموعة الأحرف على UTF-8، وسيُرمَّز أي نص بأي لغة أو رمز أو إيموجي بشكل صحيح، ويمكن فك ترميزه على أي نظام.
متى يجب تفعيل فواصل الأسطر كل 76 حرفًا؟
فقط للبريد الإلكتروني (MIME) وبعض شهادات PEM التي تتطلب تقسيم الأسطر. أما مع واجهات API وJSON وعناوين URL وData URI فأبقِ هذا الخيار معطّلًا.