کدینگ یویو چی بوده و چه کاربردی داشته؟

مکان: چت کنار سایت.

زمان: همین الان.

– یک سوال بپرسم؟

– بفرما

– UUencode چیه؟

و خب تصمیم گرفتم جوابش رو توی سایت بنویسم که شاید بعدا هم به درد یکی بخوره.

UUencode کردن، روشی است برای انتقال فایل های باینری (مثلا هشت بیتی) روی کانال های هفت بیتی (اسکی محض). یعنی طبق یک قرار داد،
عبارت های هشت بیتی (مثلا نوشته فارسی، فایل اجرایی، …) رو به یک برنامه می دیم و اون کدی تولید می کنه که هفت بیتی است (فقط حروف الفبای استاندارد انگلیسی و چند کاراکتر استاندارد). حالا می شه روی کانالی که هفت بیتی است (مثلا مودم های خیلی قدیمی) اون رو منتقل کرد بدون اینکه مشکلی پیش بیاد.

توضیح واضح تر اینه که از بحث مودم های قدیمی شروع کنیم. این مودم ها فقط و فقط برای کار با حروف انگلیسی طراحی شده بودند و در نتیجه بعدا که قرار شد روش فایل های اجرایی یا فارسی یا عربی منتقل بشه، مشکل پیش اومد. راه حل UUencode کردن اطلاعات بود. مثلا در لینوکس کافی است عبارت زیر را به دستور UUencode بدهم:

به جای لعنت فرستادن به تاریکی، شمعی روشن کنید.

تا این خروجی تولید شود:

begin 644 test.txt
MV*C9AR#8K-BGVXP@V838N=F&V*H@V8’8L=BSV*K8I]BOV88@V*C9AR#8JMBG
GV+’;C-JIVXS8C”#8M-F%V+G;C”#8L=F(V+39AB#:J=F&VXS8KRX*
`
end

می بینید که متن خروجی فقط از کاراکترهای استاندارد انگلیسی (به اصطلاح فنی ASCII 7 BIT) استفاده کرده و هر چیزی که فقط بتواند کاراکترهای انگلیسی را استفاده کند (مثلا یک صفحه کاغذ و یک ماشین تایپ لاتین یا یک مودم ۷ بیتی) می تواند آن را منتقل کند. خط اول و آخر اسم فایل خروجی و شروع و پایان متن کد شده را اعلام می کنند.

در طرف گیرنده فقط کافی است من دستور uudecode را روی لینوکسم اجرا کنم و ورودی را به آن بدهم. یک فایل به اسم test.txt درست خواهد شد که حاوی عبارت فارسی خواهد بود.

این روزها کمتر از این استاندارد استفاده می کنیم ولی قدیم ها برای فرستادن یک ایمیل فارسی باید اول اون رو با uuencode کد می کردیم. این روزها MIME و ایمیل خوان ها تقریبا شکل اتوماتیک این کار رو می کن. در آخر کار هم برای ثبت در تاریخچه کامپیوتر اضافه کنم که uu مخفف unix to unix است و این شیوه انتقال فایل های باینری (مثلا عکس و برنامه اجرایی)‌، عملا روی یوزنت خیلی مشهور شد.