طريقة الاستخدام
- الصق سلسلة Base64 في حقل المدخلات، أو انقر «فتح ملف» لتحميل ملف يحتوي على نص Base64.
- أبقِ «صيغة المخرجات» على «نص» واختر «ترميز النص» (UTF-8 افتراضيًا)، أو غيّرها إلى «ست عشري» للبيانات الثنائية.
- إذا فشل فك الترميز، فاقرأ رسالة الخطأ: فهي تحدّد موضع أول حرف غير صالح.
- انسخ النتيجة بعد فك الترميز أو نزّلها.
ما الذي تقبله أداة فك الترميز
يعكس فك الترميز عملية الترميز: إذ يُعاد كل حرف إلى قيمته المكوّنة من 6 بت، وتصبح كل أربعة أحرف ثلاثة بايتات. ونادرًا ما تكون سلاسل Base64 التي تصادفها في الواقع نظيفة، لذلك صُمّمت هذه الأداة لتكون متسامحة:
- المسافات وفواصل الأسطر تُتجاهل، فيمكن لصق محتوى MIME وكتل PEM الملفوفة كما هي. لكن احذف أولًا السطرين
-----BEGINو-----END، لأن أحرفهما وشرطاتهما أحرف Base64 صالحة وسيُفك ترميزها على أنها بيانات. - المدخلات الآمنة لعناوين URL التي تحتوي على
-و_يُفك ترميزها تمامًا مثل Base64 القياسي الذي يستخدم+و/. - الحشو الناقص لا يمثّل مشكلة. ولا يُرفض إلا الطول 4n + 1 حرفًا، لأن حرفًا واحدًا متبقيًا لا يكفي لتكوين بايت؛ وهذا يعني عادةً أن السلسلة مقتطعة.
- صيغة data URI مدعومة أيضًا: تُزال البادئة
data:...;base64,من البداية قبل فك الترميز.
مخرجات نصية أو ثنائية
نتيجة فك الترميز دائمًا سلسلة من البايتات. فإذا كان الأصل نصًا، فأبقِ المخرجات نصية واختر مجموعة أحرفه. أما إذا كان صورة أو ملف PDF أو أرشيفًا أو مفتاحًا أو نصًا مشفّرًا، فلن تجعله أي مجموعة أحرف مقروءًا: اختر «ست عشري» في «صيغة المخرجات» لفحص البايتات، أو افتح تحويل Base64 إلى ملف أو تحويل Base64 إلى صورة لمعاينته وحفظه. وكثيرًا ما تكشف الأحرف الأولى عن نوع المحتوى:
| تبدأ سلسلة Base64 بـ | المحتوى بعد فك الترميز |
|---|---|
iVBORw0KGgo | صورة PNG |
/9j/ | صورة JPEG |
R0lGOD | صورة GIF |
JVBERi0 | مستند PDF |
UEsDB | أرشيف ZIP، بما في ذلك DOCX وXLSX وJAR |
H4sI | بيانات مضغوطة بـ gzip |
eyJ | كائن JSON، مثل ترويسة JWT |
لماذا يظهر النص بعد فك الترميز مشوّهًا
- مجموعة أحرف خاطئة. عند قراءة نص UTF-8 بترميز Windows-1252 يتحوّل الحرف é إلى
é، وعند قراءة نص GBK أو Shift_JIS بترميز UTF-8 تظهر أحرف الاستبدال (�). اختر مجموعة الأحرف التي كُتب بها النص. - بيانات ثنائية. إذا ظهرت رموز عشوائية تتخللها مقاطع مقروءة متفرقة، مثل
PNGأوPKقرب البداية، فالمحتوى ملف وليس نصًا. - بيانات مضغوطة أو مشفّرة. يُفك ترميز تدفقات gzip وبيانات Protocol Buffers والنصوص المشفّرة بشكل صحيح، لكنها ليست نصًا. وتُظهر المخرجات الست عشرية ما تحتويه فعلًا.
- ترميز مزدوج. إذا كانت المخرجات نفسها بصيغة Base64، فالصقها مجددًا في حقل المدخلات وفك ترميزها مرة ثانية.
فك ترميز Base64 في الشيفرة البرمجية
# Python
base64.b64decode(s).decode('utf-8')
// Node.js (يقبل أيضًا المدخلات الآمنة لعناوين URL)
Buffer.from(s, 'base64').toString('utf8')
// المتصفح: تُرجع atob() حرفًا واحدًا لكل بايت، لذا يجب فك ترميز UTF-8 بعدها
new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)))
# سطر الأوامر في Linux وmacOS
echo 'SGVsbG8=' | base64 --decode
المواصفات
| الأبجدية | A-Z a-z 0-9 + / |
|---|---|
| حجم المخرجات | 4 أحرف لكل 3 بايتات (نحو 133%) |
| الحشو | بالرمز = حتى يصبح الطول من مضاعفات 4 |
| المعيار | RFC 4648، القسم 4 |
| حساس لحالة الأحرف | نعم |
أمثلة
| المدخلات (UTF-8) | المخرجات |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
الأسئلة الشائعة
لماذا تظهر رسالة خطأ «حرف غير صالح»؟
%2B و%3D المنسوخة من عنوان URL. احذف علامات الاقتباس أو فك ترميز URL للسلسلة أولًا. وتُظهر رسالة الخطأ موضع أول حرف يسبّب المشكلة.هل يمكنني فك ترميز Base64 بدون حشو؟
= في النهاية، لذا يُفك ترميز السلاسل غير المحشوة القادمة من JWT وعناوين URL وواجهات API بشكل طبيعي.لماذا تكون المخرجات خاطئة بعد نسخ Base64 من عنوان URL؟
+ إلى مسافة. وبما أن المسافات تُتجاهل هنا، تضيع تلك الأحرف. ضع + مكان المسافات قبل فك الترميز، واستخدم Base64URL للقيم التي تنتقل عبر عناوين URL.كيف أفك ترميز Base64 إلى صورة أو ملف؟
هل تُرسل بيانات Base64 الخاصة بي إلى خادم؟
لا. يجري فك الترميز في متصفحك باستخدام JavaScript ولا تغادر المدخلات جهازك أبدًا، وهذا أمر مهم عند فك ترميز الرموز المميزة أو أسرار الإعدادات أو البيانات الشخصية.