ما نوع الملف الذي يبدأ ترميز Base64 الخاص به بـJVBERi0؟
JVBERi0 = PDF إنه PDF. فكل ملف PDF يبدأ بالبايتات `%PDF-`، وهذه تُرمَّز في Base64 إلى `JVBERi0`. أما `iVBORw0KGgo` فهو PNG، و`/9j/` هو JPEG، و`UEsDB` هو ZIP، ويشمل ذلك DOCX وXLSX.
تحويل Base64 إلى PDF أونلاين: الصق Base64 خاماً أو data URI أو استجابة JSON كاملة. تكتشف الأداة نوع الملف الحقيقي وتعاينه وتنزّله، وتنبّهك إلى ملفات PDF المقطوعة. وتحوّل PDF إلى Base64 أيضاً. لا يُرفع أي شيء.
طريقة القراءة:
أسقط ملف PDF أو أي ملف آخر هنا، أو انقر للاستعراض
أي نوع ملف · حتى 50 ميغابايت · لا يُرفع أبداً
يبدأ كل نوع ملف ببايتات «سحرية» ثابتة، لذا يبدأ ترميز Base64 الخاص به بمحارف ثابتة. البادئات أدناه محسوبة من ترويسات ملفات حقيقية بالمحرّك نفسه الذي تستخدمه هذه الأداة.
| يبدأ Base64 بـ | نوع الملف | البايتات السحرية (hex) |
|---|---|---|
JVBERi0 | 25 50 44 46 2D | |
iVBORw0KGgoAAAANSUhEU | PNG | 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 |
/9j/ | JPEG | FF D8 FF |
R0lGOD | GIF | 47 49 46 38 |
UEsDB | ZIP / DOCX / XLSX / PPTX | 50 4B 03 04 |
0M8R4KGxGu | Office 97–2003 (DOC/XLS/PPT) | D0 CF 11 E0 A1 B1 1A E1 |
H4sI | Gzip | 1F 8B 08 |
UklGR | RIFF (WebP / WAV / AVI) | 52 49 46 46 |
SUQz | MP3 (ID3) | 49 44 33 |
e1xydG | RTF | 7B 5C 72 74 66 |
كتبه وراجعه المهندسون الذين يبنون أدوات الترميز في Go Tools. كل طول وبادئة ومثال في هذه الصفحة يُنتجه محرّك الصفحة نفسها وتتحقق منه اختبارات آلية.
JVBERi0 = PDF إنه PDF. فكل ملف PDF يبدأ بالبايتات `%PDF-`، وهذه تُرمَّز في Base64 إلى `JVBERi0`. أما `iVBORw0KGgo` فهو PNG، و`/9j/` هو JPEG، و`UEsDB` هو ZIP، ويشمل ذلك DOCX وXLSX.
+33.3% 4 محارف لكل 3 بايتات، أي أكبر بنحو 33.3%: ملف PDF حجمه 1 ميغابايت (1,048,576 بايت) يصبح 1,398,104 محرفاً. ومع فاصل سطر كل 76 محرفاً، كما في مرفقات البريد الإلكتروني، يصبح 1,434,896 محرفاً، أي أكبر بنسبة 36.8%.
يكتب Base64 أي بايتات باستخدام 64 محرفاً نصياً آمناً فقط (A–Z، a–z، 0–9، +، /)، مع = للحشو. كل 3 بايتات تصبح 4 محارف. وهذا يتيح لملف ثنائي مثل PDF أن يمر عبر قنوات لا تنقل إلا النص — حقل في JSON، أو عنصر في XML، أو متن رسالة بريد إلكتروني، أو عمود نصي في قاعدة بيانات. وتحويل Base64 إلى PDF هو ببساطة العملية العكسية: إعادة المحارف إلى بايتات وحفظها بامتداد .pdf. المشكلة أن Base64 الحقيقي نادراً ما يصل نظيفاً: يأتي ومعه بادئة data:، أو تسلسلات هروب JSON، أو فواصل أسطر، أو أبجدية مختلفة، وكثير من المحوّلات تُنتج بصمت ملفاً لا يُفتح.
%PDF-1.4 → bytes 25 50 44 46 2D 31 2E 34 JVBERi0xLjQ= → the same bytes in Base64 data:application/pdf;base64,JVBERi0xLjQ= → data URI form
يعالج data URI، وتسلسلات هروب JSON مثل \/ و\n، وعلامات الاقتباس، وفواصل أسطر MIME، ومحارف URL-safe - _، و%2B %2F القادمة من عناوين URL، وترويسات PEM، وحشو = الناقص — ويعرض كل خطوة قام بها.
الصق {"code":0,"data":{"file":"JVBERi0…"}} كما هي. يُستخدم أطول حقل يشبه Base64 ويُعرض مساره (data.file)، فتعرف أي حقل فُكّ ترميزه.
يُتعرَّف على PDF وPNG وJPEG وGIF وWebP وDOCX وXLSX وPPTX وZIP وGZIP وMP3 وMP4 وأكثر من 40 نوعاً آخر من بايتاتها الأولى. ويحصل الملف المنزَّل على الامتداد الصحيح حتى لو قالت البادئة غير ذلك.
ينبّه إلى ملف PDF بلا %%EOF (انقطع أثناء النسخ أو بسبب حد طول العمود)، وإلى Base64 رُمِّز مرتين، وإلى hex لُصق على أنه Base64، وإلى بيانات مضغوطة بـgzip، وإلى ملفات PDF المشفّرة.
تُفتح ملفات PDF في العارض المدمج في المتصفح، وتُعرض الصور وSVG، ويظهر النص وJSON نصاً. أما HTML فلا يُعرض مُصيَّراً أبداً — بل مصدره فقط — لأنه سيعمل داخل هذه الصفحة.
أسقط ملفاً حتى 50 ميغابايت واحصل على Base64 خام أو data URI، مع خيار URL-safe أو التفاف الأسطر عند 76 محرفاً، ومع مقدار الزيادة في الحجم بالضبط.
base64.b64decode open('out.pdf', 'wb').write(base64.b64decode(s)). استخدم urlsafe_b64decode مع - و_؛ وتتجاهل b64decode فواصل الأسطر ما لم تمرّر validate=True.
java.util.Base64 Files.write(Path.of("out.pdf"), Base64.getMimeDecoder().decode(s)). ترفض getDecoder() فواصل الأسطر؛ وgetUrlDecoder() مخصصة لـ- و_.
Buffer fs.writeFileSync('out.pdf', Buffer.from(s, 'base64')). يقبل Buffer الأبجديتين ويتجاهل المسافات البيضاء، لكنه يتخطى بصمت أيضاً أي محرف غير صالح آخر بدل أن يُطلق خطأً، لذا تحقق من أن الناتج يبدأ بـ%PDF-.
atob / Uint8Array.fromBase64 أنشئ Uint8Array قبل إنشاء Blob. وUint8Array.fromBase64() هي الدالة المدمجة الأحدث؛ تحقق من دعمها في المتصفحات التي تستهدفها.
base64_decode file_put_contents('out.pdf', base64_decode($s, true)). مرّر true للوضع الصارم، وإلا أُسقطت المحارف غير الصالحة بصمت.
Convert.FromBase64String File.WriteAllBytes("out.pdf", Convert.FromBase64String(s)). المسافات البيضاء مسموحة؛ أما - و_ فلا.
base64 -d / certutil في macOS وLinux: base64 -d < in.txt > out.pdf. وفي Windows: certutil -decode in.txt out.pdf.
JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4K…
PDF · الإصدار 1.4 · يُنزَّل باسم file.pdf
يبدأ بـJVBERi0، أي %PDF-. لا شيء يحتاج إلى تنظيف، فيُفك ترميزه كما هو.
"data:application\/pdf;base64,JVBERi0xLjQK…"
طريقة القراءة: أُزيلت علامات الاقتباس المحيطة ← فُكّت تسلسلات هروب JSON ← أُزيلت بادئة data URI (application/pdf)
تكتب json_encode في PHP وبعض أدوات التسلسل في Java المحرف / على شكل \/. وإذا لُصق في فاك ترميز لا يعالجه، تصبح الشرطة المائلة العكسية محرفاً غير صالح.
{"code":0,"data":{"name":"invoice.pdf","file":"JVBERi0xLjQK…"}} طريقة القراءة: استُخرج الحقل data.file من JSON
لا حاجة إلى قص السلسلة يدوياً. يُستخدم أطول حقل يشبه Base64 ويُعرض مساره.
data:application/pdf;base64,iVBORw0KGgoAAAANSUhEUgAA…
تحذير: تقول data URI إنه application/pdf، لكن البايتات PNG. حُفظ باسم file.png
كثير من المحوّلات ستكتب ملف .pdf لا يستطيع أي قارئ فتحه. أما هنا فالبايتات السحرية تتغلب على الوسم.
255044462d312e370a…
تحذير: يبدو هذا نظاماً ست عشرياً — وإذا قُرئ كـ hex فهو PDF. [فك الترميز كـ hex]
كل الخانات الست عشرية محارف Base64 صالحة، لذا لا يفشل فك ترميز Base64؛ بل يُنتج بصمت بيانات عديمة المعنى. و25 50 44 46 هي %PDF.
Base64 خام، أو data:application/pdf;base64,…، أو سلسلة نصية منسوخة من JSON فيها تسلسلات هروب \/، أو استجابة API كاملة. وللسلاسل الطويلة جداً استخدم فتح ملف .txt بدل اللصق.
يسرد السطر أسفل المربع كل خطوة تنظيف — إزالة البادئة، وفك تسلسلات الهروب، وإضافة الحشو، واستخراج الحقل من JSON. وإن كان هناك خطأ، تذكر الرسالة المحرف وموضعه بالضبط.
تعرض الشارة النوع المقروء من البايتات السحرية للملف. وتظهر ملاحظة صفراء إذا لم يكن الملف PDF فعلاً، أو إذا كذبت data URI في نوعه، أو إذا انقطع ملف PDF قبل %%EOF.
تُفتح ملفات PDF في عارض المتصفح نفسه، وتُعرض الصور والنصوص داخل الصفحة. غيّر اسم الملف إن شئت وانقر تنزيل. وللاتجاه المعاكس، انتقل إلى من PDF / ملف إلى Base64 وأسقط ملفاً.
data:application/pdf;base64, ليست جزءاً من Base64. تركها إما يُطلق خطأً (: و; محرفان غير صالحين) وإما، في فاكّات الترميز المتساهلة، يُفسد البايتات الأولى فلا يعود الملف يبدأ بـ%PDF-.
base64.b64decode(value) # value = 'data:application/pdf;base64,JVBERi0…'
b64 = value.split(',', 1)[1] if value.startswith('data:') else value
pdf = base64.b64decode(b64) ملف PDF ثنائي. وتحويل البايتات المفكوكة إلى سلسلة نصية ثم كتابتها بترميز نصي يستبدل البايتات غير الصالحة ويغيّر نهايات الأسطر، فينكسر جدول الإسنادات الترافقية.
fs.writeFileSync('out.pdf', Buffer.from(b64, 'base64').toString()) fs.writeFileSync('out.pdf', Buffer.from(b64, 'base64')) يرفض Base64.getDecoder() في Java فواصل الأسطر. وBase64 القادم من البريد الإلكتروني أو من أمر base64 في Linux ملتفّ عند 76 محرفاً. استخدم فاك ترميز MIME، أو أزل المسافات البيضاء أولاً.
byte[] pdf = Base64.getDecoder().decode(wrapped); // IllegalArgumentException
byte[] pdf = Base64.getMimeDecoder().decode(wrapped);
تستخدم رموز JWT وكثير من معاملات URL المحرفين - و_ بدل + و/، وتحذف حشو =. فيرفضها فاك الترميز القياسي أو يُنتج بايتات خاطئة.
base64.b64decode(token_part) # contains - and _
base64.urlsafe_b64decode(token_part + '=' * (-len(token_part) % 4))
في المتصفح تُعيد atob سلسلة ثنائية، محرفاً واحداً لكل بايت. وتمريرها إلى new Blob([str]) يرمّزها بـUTF-8، فيتحول كل بايت أكبر من 127 إلى بايتين. انسخها أولاً إلى Uint8Array.
new Blob([atob(b64)], { type: 'application/pdf' }) const bytes = Uint8Array.from(atob(b64), c => c.charCodeAt(0));
new Blob([bytes], { type: 'application/pdf' }) ينتهي ملف PDF بـ%%EOF. فإذا قُطع Base64 بسبب عمود VARCHAR أو حد طول سطر السجل أو نسخ غير مكتمل، يُفك ترميز الملف لكن القارئات تعرض خطأً أو صفحات ناقصة. قارن الطول بما أنتجه المُرسِل.
SELECT LENGTH(pdf_b64) FROM docs; -- 65535: suspiciously round
ALTER TABLE docs MODIFY pdf_b64 LONGTEXT; -- or store the bytes in a BLOB
{"filename": …, "content": "<base64>"}. رمّز الملف هنا لتبني طلباً تجريبياً في Postman أو cURL.%%EOF يخبرك أن العمود أو سطر السجل كان أقصر من اللازم.+ / (القياسية، القسم 4) و- _ (الآمنة لعناوين URL وأسماء الملفات، القسم 5). وعادةً ما يحذف Base64 من نوع URL-safe حشو =. واجتماع الأبجديتين في سلسلة واحدة يعني أنها عُدّلت أو جُمعت من مصدرين.= الطول من مضاعفات 4. ومن دونه يمكن استعادة باقٍ قدره 2 أو 3؛ أما الباقي 1 فمستحيل في أي Base64 صالح — فقد ضاع محرف أو أُضيف. ووجود = في المنتصف يعني عادةً أن سلسلتين دُمجتا.%PDF- لـPDF، و89 50 4E 47 لـPNG، و50 4B 03 04 للصيغ المبنية على ZIP مثل DOCX وXLSX. وهذه البايتات تثبّت محارف Base64 الأولى، فيمكن قراءة النوع قبل فك الترميز — انظر الجدول في الأداة.%%EOF. فإذا لم يظهر في آخر 1,024 بايت، فالملف مقطوع على الأرجح. وقد تبدأ الترويسة على بُعد حتى 1,024 بايت من البداية؛ ومعظم القارئات تفتح هذه الملفات، لذا يُبلَّغ عن ذلك دون رفض الملف.{"filename": "invoice.pdf", "mime": "application/pdf", "content": "…"}) أو استخدم data URI، كي لا يضطر المستقبِل إلى التخمين.%PDF-. فهذا يكشف الحقول الخاطئة والترميز المزدوج وصفحات الخطأ المُعادة بصيغة Base64 بسطر كود واحد.multipart/form-data أو رابط تنزيل موقَّع مسبقاً أخف على الطرفين.BLOB/bytea أصغر بمقدار الثلث، ولا يمكن أن يُقطع بصمت كما يحدث مع VARCHAR. رمّز إلى Base64 عند حدود API فقط.data:application/pdf;base64, وعلامات الاقتباس وفواصل الأسطر وتسلسلات هروب JSON — فهي تُزال تلقائياً. data: على أنها جزء من البيانات؛ أو كُتبت البايتات نصاً لا بيانات ثنائية؛ أو قُطعت السلسلة (لا يوجد %%EOF في النهاية)؛ أو رُمِّز Base64 مرتين؛ أو أنه ليس PDF أصلاً — كأن يكون PNG أو رسالة خطأ بصيغة JSON. الصق السلسلة نفسها هنا: فلكل حالة من هذه تحذير خاص. JVBERi0 هو PDF، وiVBORw0KGgo هو PNG، و/9j/ هو JPEG، وR0lGOD هو GIF، وUEsDB هو ZIP (وبالتالي DOCX وXLSX وPPTX)، وH4sI هو gzip. تقرأ الأداة البايتات السحرية بعد فك الترميز وتعرض النوع، وتحفظ الملف بالامتداد المطابق. data:application/pdf;base64,JVBERi0…. يمكن للمتصفحات فتحه مباشرةً رابطاً أو قيمةً لـsrc. أما واجهات API فتريد عادةً جزء Base64 الذي بعد الفاصلة فقط. %PDF-. والنوع المعروض هو ما تمثّله البايتات فعلاً. ومن المفاجآت الشائعة: صورة ممسوحة بصيغة PNG أو JPEG، أو DOCX، أو ZIP يضم عدة ملفات PDF، أو رسالة خطأ بصيغة JSON أو HTML رُمِّزت بـBase64 بدل المستند. %%EOF. فإذا غابت، فالأرجح أن Base64 مقطوع: نُسخ جزء منه فقط، أو قطعه عمود في قاعدة البيانات مثل TEXT في MySQL (65,535 بايت)، أو قصّره حد طول سطر السجل. احصل على السلسلة كاملة مرة أخرى؛ ففك الترميز لا يستطيع استعادة البيانات المفقودة. الترميز والتنسيق
جدول ASCII الكامل: 128 حرفًا بالأنظمة العشري والست عشري والثماني والثنائي، مع محوّل ثنائي الاتجاه بين النص وشيفرات ASCII. أحرف التحكم مرفقة بتسلسلات الهروب وتدوين ^ وأين تصادفها فعليًا.
الترميز والتنسيق
أنشئ باركود EAN-13 وUPC-A وCode 128 وCode 39 و11 نوعاً آخر بصيغة SVG أو PNG جاهزة للطباعة. اكتب 12 خانة فتُحسب خانة التحقق تلقائياً، وإن أخطأت في الأخيرة قلنا لك ما يجب أن تكون.
الترميز والتنسيق
رمّز وفك ترميز Base64 مجاناً أونلاين — محوّل فوري مع دعم UTF-8 والرموز التعبيرية. خصوصية 100% — يعمل في متصفّحك. جرّبه الآن.
الترميز والتنسيق
فك ترميز سلسلة Base64 أو عنوان URI للبيانات إلى صورة داخل متصفّحك. عاين واقرأ الأبعاد ونوع MIME ثم نزّل كـ PNG أو JPG أو GIF أو SVG. بلا رفع.
الترميز والتنسيق
حوّل CSV إلى JSON في متصفحك. RFC 4180، استنتاج الأنواع، صف العنوان، أمان الأعداد الكبيرة. خصوصية 100%.
الترميز والتنسيق
الصق نصاً مشوّهاً واسترجع أصله. تُجرَّب كل سلسلة ترميز محتملة — UTF-8 وGBK وBig5 وShift_JIS وEUC-KR وWindows-1252 — وتُرتَّب النتائج مع بيان السلسلة وراء كل واحدة. مجاني ويعمل كلياً داخل متصفحك.