آشنایی با یونی کد (Unicode)
● مقدمه:
از چند سال پیش در کشورمان، استفاده از کامپیوتر با سرعت سرسام آوری جای خود را در تمامی عرصه ها باز کرد و سیل کامپیوترهای شخصی و تجهیزات جانبی آنها به سوی کشور سرازیر شد. اما بایستی اعتراف کرد که با وجود این که سرعت سوق به سوی تکنولوژی دیجیتال در ایران روند خوبی را طی نموده، اما در زمینه ارائه اطلاعات و پردازش آن به زبان فارسی تشتتی در این میان ایجاد گردید. یکی از عوامل موثر در این ناهماهنگی، نبود الگویی واحد برای ذخیره و پردازش و نمایش اطلاعات بر روی رسانه های جدید اطلاع رسانی همچون کامپیوتر در سطح ملی است.
نرم افزارهای متفاوت، با فرمت های مختلف، کدهای فارسی گوناگون و ... در حال استفاده اند و روزانه میزان قابل توجهی از اطلاعات را در خود جای می دهند. اگر از آن دسته از مراکزی که به دلیل عدم آگاهی کافی اطلاعات را به صورت ناقص جمع آوری و وارد می کنند (که حدود 80 درصد جامعه مورد نظر را تشکیل می دهند) بگذریم به تفرق، اختلاف و اعمال سلیقه های مختلف در سایر مراکز خواهیم رسید که برای نمونه به اختلاف در مورد کدنویسه های به کار رفته برای حروف فارسی روی کامپیوتر می توان اشاره کرد.در این مقاله به طور کامل با یونی کد آشنا خواهید شد.در سایت سرزمین دانلود با ما همراه باشید.
● نتیجه ادامه روند جاری:
در مورد مراکزی که به هر حال مشغول سرمایه گذاری در بخش ورود، پردازش و نمایش اطلاعات هستند مسئله به نوع دیگری خود را نشان خواهد داد. این گونه مراکز تا زمانی که پای خود را از محدوده مرکز خود فراتر نگذاشته اند مشکلی نخواهند داشت، ولی به محض آنکه بخواهند با مراکز اطلاعاتی و تحقیقاتی دیگر ارتباط برقرار کرده یا به مبادله اطلاعات با این مرکز بپردازند متوجه خواهند شد که سال ها سرمایه های خود را بر بادداده اند.
همین مشکل در سطح ملی برای ایجاد یک مرکز اطلاعات ملی رخ خواهد نمود. زمانی این مشکل ملی بیشتر نمود پیدا می کند که بحث شبکه جهانی اینترنت نیز به میان آید.
اینترنت به عنوان کلیدی برای ارتباط با دیگر مراکز اطلاعاتی به علت در دسترس بودن آسان و همچنین حجم عظیم اطلاعات موجود در آن یکی از مهم ترین موضوعاتی خواهد بود که به علت عدم وجود یک سیستم جهانی برای ذخیره، بازیابی، پردازش و نمایش اطلاعات و به طور کلی مبادله اطلاعات که جنبه های ملی نیز داشته باشد، دارای نقاط ضعفی است که ما را از بهره برداری مناسب در جهت منافعمان باز می دارد.
● راه حل چیست؟
از زمانی که اولین گزارش «زبان فارسی و کامپیوتر» در سال 1356 در دانشکده ریاضی و کامپیوتر دانشگاه صنعتی شریف ارائه شد، تا امروز که شبکه اینترنت چهره دیگری به اطلاع رسانی داده است، مدت زیادی می گذرد. امروزه دیگر محدودیت های سخت افزاری یا نرم افزاری نمی تواند مانع پیاده سازی یک سیستم ذخیره سازی، نمایش، و تبادل اطلاعات چندزبانه گردد. امروزه مؤسسات بزرگ استانداردسازی چون ایزو ( ISO ) و W3 Consortium نیز، در استانداردهایشان مشکلات و مسائل مربوط به جهانی سازی را در نظر می گیرند تا امر تبادل اطلاعات چند زبانه را تسهیل نمایند. اما به نظر می رسد که به دلیل عدم حضور ایرانیان و فارسی زبان ها در این روند، زبان فارسی قدری غریب مانده و کمتر به آن توجه شده است. به عنوان مثال، هنوز در بین صدها مجموعه نویسه( Character Set ) ثبت شده در اینترنت توسط یانا (Internet Assigned Number Authority)، تنها یک مجموعه نویسه ثبت شده متعلق به زبان فارسی است که آن هم کد پیج اختصاصی شرکت آیبیام است. حتی در مورد استاندارد کلی تبادل اطلاعات نیز قالبی که مورد توافق همه باشد وجود ندارد. سه قالب موجود، ایران سیستم، استاندارد 2900 و استاندارد 3342 ، هر یک ایراداتی دارند که سبب شده است شرکت ها و مؤسسات داخلی به جدول های خاص خود روی آورند تا بتوانند نیازهای خود را تا حدی رفع سازند.
اخیرا راه حل هایی در هر یک از مسائل خاص مربوط به تبادل اطلاعات برای بین المللی سازی در نظر گرفته شده است که با وجود این که این موارد کامل تر از جداولی است که در ایران برای حل مشکلات تبادل اطلاعات زبان فارسی ایجاد گردیده، ولی به خاطر عدم وجود مراجع موثق در مورد خط و زبان فارسی برای استانداردگذاران، مسائل خاص این زبان یا در نظر گرفته نشده و یا به شکل ناقص منظور شده است. خوشبختانه بسیاری از این استانداردها امکان گسترش بعدی را در نظر گرفته اند که روند تصحیح را تسهیل می کند.
● یونی کد چیست؟
از جمله استانداردهای بین المللی که کامل تر از بقیه استانداردهای موجود به رفع نیازهای مربوط به تبادل اطلاعات چندزبانه پرداخته است، می توان به استاندارد یونی کد اشاره کرد.
این استاندارد، تقریبا توسط تمامی شرکت های بین المللی کامپیوتری، مانند آیبیام، مایکروسافت، و سان، و نیز موسسات ملی استاندارد در کشورهای مختلف جهان برای تبادل اطلاعات چندزبانه مورد توافق قرار گرفته است و سرعت رشد بسیار زیادی نیز در میان کاربران دارد. همین طور، در حال حاضر کلیه استانداردهای جدیدی که برای شبکه اینترنت طراحی می شوند، این دو استاندارد را به عنوان کدپیج پیش فرض می پذیرند که استاندارد XML و زبان جاوا از آن جمله اند.
به زبان ساده می توان گفت که یونی کد روشی برای تبدیل متون به رشته های عددی قابل ذخیره در کامپیوتر است. روش های گوناگونی برای این کار وجود دارند، ولی مزیت یونی کد نسبت به آنها، این است که یک روش کامل جهانی است؛ به این معنی که حروف همه زبان های دنیا و تمامی علائم مورد استفاده همه مردم جهان در آن آمده اند و همچنین در همه جا قابل نمایش است و نیاز به امکانات خاصی ندارد. البته یونی کد هنوز جوان است ولی امروزه بسیاری نرم افزارهای رایج در جهان (از جمله همه مرورگرهای جدید اینترنت) آن را پشتیبانی می کنند.
از مهم ترین مزایایی که یونی کد برای زبان فارسی دارد (مثل بسیاری زبان های دیگر) می توان موارد زیر را نام برد:
1) در نسخه استاندارد هر نرم افزاری که از این استاندارد پشتیبانی کند، می توان فارسی نوشت یا متون فارسی را خواند. بدین ترتیب دیگر نیازی به تامین نسخه های خاص فارسی یا عربی نیست.
2) برای خواندن متون فارسی که توسط شرکت خاصی نوشته شده اند، نیازی به داشتن فونت خاص آن شرکت نداریم و هر متن فارسی که با استاندارد یونی کد، کدگذاری شده باشد، با هر فونت یونی کدی قابل مشاهده است.
3) امکان استفاده هم زمان از زبان های فارسی و انگلیسی را تامین می کند.
4) بدون استفاده از فونت های خاص امکان استفاده از علائم خاص را فراهم می کند.
به بیان دیگر، «استاندارد یونی کد» استاندارد جهانی کدگذاری کارکترهاست که برای پردازش کامپیوتری متون به کار می رود. این استاندارد همان کاراکترها و کدهای استاندارد ISO/IEC 10646 را داراست و کاملا با آن سازگار است. پس در واقع هر پیاده سازی سازگار با یونی کد، با ISO/IEC 10646 نیز سازگار است.
یونی کد امکان کدگذاری همه کاراکترهای مورد استفاده در نوشتن زبان های دنیا را فراهم آورده است. این استاندارد از کدگذاری 16بیتی استفاده می کند که برای بیش از65000 نویسه (کاراکتر) جا فراهم می کند. اگر چه 65000 نویسه برای کدگذاری اکثر نویسه هایی که در زبان های مهم دنیا استفاده می شود کافی است، با این حال یونی کد شیوه گسترشی به نام UTF 16 فراهم کرده است که امکان اضافه کردن حدود یک میلیون نویسه دیگر را نیز می دهد. این دامنه برای کلیه نویسه های عالم، از جمله پوشش کامل همه خط های باستانی (همچون خط میخی) نیز کافی است.
یونی کد برای کلیه نویسه های مورد استفاده در زبان های عمده دنیا کد تعیین کرده است. به علت گسترده بودن فضای تخصیص نویسه، این استاندارد بسیاری از نمادهای لازم برای حروف چینی را نیز در بر گرفته است. از خط های مورد پشتیبانی این استاندارد می توان به لاتین (دربرگیرنده اکثر زبان های اروپایی)، سیریلیک(روسی، صربی)، یونانی، عربی (شامل عربی، فارسی، اردو، کردی)، عبری، هندی، ارمنی، آسوری، چینی، کاتاکانا و هیراگانا(ژاپنی)، و هانگول (کره ای) اشاره کرد. به علاوه، تعداد زیادی نماد ریاضی و فنی علائم نقطه گذاری، پیکان، و علامت های متفرقه در این استاندارد وجود دارد. این استاندارد برای علامت های ترکیب شونده یا اعراب ها نیز کدهایی در نظر گرفته است که از جمله آنها علامت هایی چون «˜» (مد)هستند که در ترکیبب حروف پایه، حروف تغییرلحن یافته ای چون «ñ» را می سازند.
به طور کلی، بعضی از مشخصات یونی کد به شرح زیر است:
● نویسه های شانزده بیتی
● یکی سازی (اختصاص یک کد به نویسه های مشترک در چند زبان مختلف)
● نویسه، نه شکل (یک «ع»، و نه چهارتا: «ﻋ»، «ﻌ»، «ﻊ»، «ﻉ»)
● بار معنایی (حرف بودن، مقدار عددی، ...)
در استاندارد یونی کد، نویسه های فارسی در بلوک مربوط به خط عربی قرار دارند. این بلوک برای دربرگرفتن نویسه های زبان هایی که از خط عربی استفاده می کنند، مثل فارسی، اردو، پشتو، سندی، و کردی گسترش یافته است. این بلوک نشانه های قرآنی از قبیل نشانه های سجده و پایان آیه، و علائم وقف را نیز در بردارد.
در یونی کد با وجود یکی سازی کدهای حروف مشترک، برای حروف فارسی که بار معنایی یا نمایشی متفاوت با حروف عربی دارند، نویسه های جداگانه درنظر گرفته شده است. یعنی کلیه حروف خاص فارسی (پ، چ، ژ، گ) و نیز «ک» و «ی» فارسی که با حرف مشابه در عربی تفاوت نمایشی دارند، مکان جداگانه ای به خود اختصاص داده اند. کلیه اعراب های متداول حضور دارند و میان شکل فارسی/اردو و عربی ارقام نیز به علت شکل و رفتار متفاوت، تفاوت هایی منظور گشته است.
از طرف دیگر، علائم نقطه گذاری چون نقطه و فاصله که شکلی کسانی در خط های لاتین و عربی دارند، کد یکسان دارند. علائمی چون پرانتز نیز، بسته به جهت متن، آینه ای می شوند، به طور مثال، نویسه 0028 نماینده «پرانتز باز» است، و نه«پرانتز سمت چپ». یونی کد اتصال مجازی و فاصله مجازی را نیز تحت نام های «اتصال با عرض صفر» و «بی اتصالی با عرض صفر» به رسمیت می شناسد.
بدین ترتیب ملاحظه می شود که برای حل مشکلات موجود، و نیز رفتن به سوی یک استاندارد مقبول و همه جانبه، استاندارد یونی کد، روشی مناسب به نظر می رسد. در شماره های آتی ماهنامه نیز به این موضوع از جنبه های دیگر خواهیم پرداخت.
● اصطلاحات:
● نویسه: در مقابل character. کوچک ترین واحد متن. مثلا یک حرف لاتین، یک اعراب فارسی، یکی علامت نقطه گذاری، یک نشانه بریل، یا یک نماد ریاضی
● شکل: در مقابل glyph. کوچک ترین واحد نمایش متن. برای بعضی نویسه ها مثل حروف فارسی و هندی ممکن است چند شکل موجود باشد. مثلا « ﺑ » و « ﻊ » از اشکال نمایشی محسوب می شوند
● مجموعه نویسه: در مقابلcharacter set. مجموعه ای از نویسه ها که به هر نویسه عددی اختصاص می دهد که نماینده آن نویسه محسوب می شود و در تبادل اطلاعات مورد استفاده قرار می گیرد
● مجموعه کد: در مقابل codepage. سیستمی که به هر نویسه دنباله مشخصی از بایت ها را متناظر می کند. مجموعه نویسه ها می توانند به شکل یا چند مجموعه کد قابل استفاده باشند.