> unix | ترميز كلاسيكي | أنظمة قديمة <

// UUencoding – تنسيق ترميز Unix-to-Unix لنقل البيانات الثنائية عبر قنوات نصية فقط

[UNIX]

معيار يونكس الكلاسيكي

مخطط ترميز تاريخي استُخدم لعقود في أنظمة يونكس لنقل الملفات عبر البريد الإلكتروني و Usenet.

[متوافق]

توافق عالٍ

ما زالت العديد من أدوات يونكس/لينكس وعملاء البريد القديمة تدعم تنسيق UUencode مباشرة.

[مكتفٍ ذاتيًا]

تنسيق مكتفٍ ذاتيًا

يتضمن اسم الملف وصلاحياته في مخرجات الترميز، مما يسهل إعادة بناء الملف الأصلي على الجانب المستقبِل.

>> تفاصيل تقنية

كيف يعمل UUencoding:

يحوّل UUencoding البيانات الثنائية إلى نص ASCII باستخدام أحرف قابلة للطباعة تبدأ من المسافة (ASCII 32). وكما في Base64، يتم ترميز 3 بايتات إلى 4 أحرف، لكن باستخدام مجموعة أحرف مختلفة وإضافة بيانات الملف في أسطر begin/end.

مثال:

"Hello" → begin 644 data\n%2&5L;&\\`\n`\nend

لماذا أستخدم UUencoding؟:

  • >الحفاظ على التوافق مع الأنظمة والأدوات القديمة في يونكس
  • >نقل الملفات الثنائية عبر قنوات لا تقبل سوى النص
  • >تحليل أرشيفات البريد و Usenet التاريخية
  • >إعادة تمثيل بروتوكولات وتدفقات عمل قديمة كما هي
  • >أداة مفيدة لمسؤولي الأنظمة ومهندسي البنية التحتية

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

ما هو UUencoding؟

UUencoding (Unix-to-Unix encoding) هو مخطط لترميز البيانات الثنائية إلى نص، صُمم في الأساس لإرسال الملفات عبر البريد الإلكتروني و Usenet عندما كانت القنوات النصية فقط متاحة.

ما الفرق بين UUencoding و Base64؟

كلاهما يرمّز 3 بايتات في 4 أحرف، لكن UUencoding يستخدم مجموعة أحرف مختلفة تبدأ من المسافة (ASCII 32)، ويضيف معلومات عن الملف في أسطر begin/end مثل الاسم والصلاحيات.

هل ما زال UUencoding مستخدمًا اليوم؟

لا يزال موجودًا في بعض أدوات يونكس/لينكس القديمة، وفي أرشيفات البريد و Usenet؛ لذلك دعم هذا التنسيق يبقى مهمًا عند التعامل مع هذه البيانات.

لمن تُفيد هذه الأداة؟

تستهدف هذه الأداة المطورين ومسؤولي الأنظمة الذين يحتاجون لفحص أو تحويل بيانات UUencode ضمن بيئات عمل قديمة أو مختلطة.

// مرجع سريع

الاسمالوصف
Length charbyte count + 32 (45 bytes -> M)
Group3 bytes -> 4 chars, each 6 bits + 32 (space..underscore)
Zero valuebacktick ` instead of space
Lineup to 45 bytes -> 60 chars
Headerbegin 644 filename
Trailer` line, then end

// مثال محلول

Input   Cat      (0x43 0x61 0x74)
Bits    010000 110110 000101 110100  = 16 54 5 52
+32     48 86 37 84  ->  0 V % T
Line    #0V%T        (# = 3 bytes + 32)

begin 644 cat.txt
#0V%T
`
end

>> المزيد من الأسئلة

س: ما هو UUencode؟

ج: طريقة يونكس تاريخية («Unix-to-Unix encode») تحوّل البيانات الثنائية إلى محارف ASCII قابلة للطباعة لإرسالها عبر البريد أو Usenet. تتحول كل 3 بايتات إلى 4 محارف بحمل زائد نحو 33%.

س: بماذا يختلف UUencode عن Base64؟

ج: كلاهما يحوّل 3 بايتات إلى 4 محارف. يضيف UUencode القيمة 32 إلى كل قيمة من 6 بتات (محارف من المسافة إلى «_») بينما يستخدم Base64 الأحرف A–Z وa–z و0–9 و+ و/. كما يضيف UUencode محرف طول في كل سطر وسطري begin/end مع اسم الملف والأذونات.

س: هل لا يزال UUencode مستخدماً؟

ج: نادراً. حلّ محله MIME مع Base64 في البريد إلى حد بعيد. ما زال يظهر في أرشيفات Usenet القديمة وأدوات يونكس uuencode/uudecode. للاستخدامات الجديدة Base64 أفضل.

لغات أخرى