Base64
Base64 (ترميز ثنائي إلى نص)
نظام ترميز يحول البيانات الثنائية إلى سلسلة نصية باستخدام 64 حرفًا قابلاً للطباعة من ASCII (A-Z وa-z و0-9 و+ و/)، مما يسمح بتضمين المحتوى الثنائي مثل الصور أو الملفات بأمان في التنسيقات النصية.
التفاصيل التقنية
يجمع Base64 كل 3 بايتات إدخال (24 بت) في 4 أحرف إخراج (6 بتات لكل حرف)، باستخدام حشو = عندما لا يكون طول الإدخال قابلاً للقسمة على 3. ينتج عن ذلك زيادة حجم بنسبة ~33%. يستبدل المتغير الآمن لعناوين URL (base64url، RFC 4648) + بـ - و/ بـ _ لتجنب المشاكل في عناوين URL وأسماء الملفات. في JavaScript، يتعامل btoa()/atob() مع سلاسل Latin-1؛ لـ Unicode يجب ترميز البيانات بـ UTF-8 أولاً. تضمّن مخططات Data URI محتوى مشفرًا بـ Base64 مباشرة في HTML/CSS باستخدام مخطط data:.
مثال
```javascript
// Encode string to Base64
const encoded = btoa('Hello, World!'); // 'SGVsbG8sIFdvcmxkIQ=='
// Decode Base64 to string
const decoded = atob('SGVsbG8sIFdvcmxkIQ=='); // 'Hello, World!'
// File to Base64 Data URI
const reader = new FileReader();
reader.onload = () => console.log(reader.result);
// → 'data:image/png;base64,iVBORw0KGgo...'
reader.readAsDataURL(file);
```