فونت یونی‌کد چیست ؟

Unicode Logo

Unicode Logo

Unicode – یونی‌کد چیست ؟ یونی‌کد استانداردی است که با استفاده از آن می‌توان برای تمامی زبان‌های زنده و مرده (‌ از بین رفته – مثل زبان‌های باستانی ) دنیا ، یک حرف ( کاراکتر ) متناظر ایجاد کرد . به عبارت دیگر با استفاده از فونت یونی‌کد یک برنامه نویس قادر است برای یک زبان یا یک لهجه خاص ، یک فونت ایجاد کند ، بدون اینکه برای این کار ، حروف ( کاراکترهای ) زبان یا لهجه مورد نظرش را ، در جای مربوط به یک لهجه یا زبان دیگر رونوشت ( کپی ) کند .

برای مثال می توانید یک استادیوم فوتبال 100 هزار نفری را در نظر بگیرید که هر صندلی متعلق به یک شخص خاص است ، اگر آن شخص در استادیوم حاضر شود ، صندلی وی به او تعلق خواهد گرفت . در غیر اینصورت ، صندلی یاد شده خالی خواهد ماند . با این کار می توان تمام حرف‌ها (‌کاراکترهای)  لهجه ها وزبان‌های شناخته شده دنیا را با استفاده از فونت‌ها پیاده سازی کرد .

مزیت این روش آن است که هر” glyph  گلیف ” ( به شکل ظاهری حروف گلیف گفته می‌شود ، این شکل می‌تواند هندسی – برای زبان های باستانی – یا یک علامت نقاشی شده – مثل زبان هیروگلیف مصر – یا به شکل عدد – یا به شکل هر حرف دیگری باشد )  یک کد مخصوص و انحصاری دارد که به غیر خود آن گلیف هیچ گلیف دیگری اجازه استفاده از آن را ندارد . این کار باعث جلوگیری از دوبار تکرار شدن یک حرف می‌شود ، همچنین باعث می شود ، گلیف ( یا حرف یا کاراکتر ) مورد نظر به سادگی قابل تشخیص باشد ، مثلا کد U+0041  که متعلق به حرف A انگلیسی است ، و سایر کاراکترها کدهای مخصوص به خود را دارند .

از دیگر مزایای این کد انحصاری چنانچه گفته شد ، جلوگیری از عدم تکرار یک حرف است . همان مثال استادیوم را فرض کنید ، در استادیومها برای دسته‌بندی افراد و مدیریت راحت تر تماشاگران ، ساختار بلوک بندی شده در نظر گرفته شده و هر بخش از بخش دیگر متمایز شده است . در یونی‌کد هم برای اینکه حروف (‌کاراکترهای) زبان‌های یک شکل را ( مثل زبان فارسی و عربی ) دوبار تکرار نکنند ، از یک ساختار بلوک بندی شده استفاده کرده‌اند ،‌که این ساختار از بزرگ شدن یونی‌کد جلوگیری کرده ، برای مثال در همان مثال فارسی و عربی ، از آنجا بیشتر کاراکترهای فارسی در عربی هست ، این کاراکترهای مشابه تکرار نمی شوند و از یک کد مشترک ( درواقع هر دو زبان فقط از یک کد ) استفاده می کنند. و هر زبان چه فارسی و چه عربی و … ، کاراکترهایی را که مشترک ندارند ، ( مثلا در عربی حرف ي با دو نقطه در زیر با کد 064A و در فارسی حرف ی بدون نقطه در زیر با کد 06CC و حرف ی عربی بدون نقطه در زیر با کد 0649 ) به جدول و بلوک کاراکترها اضافه کرده‌اند. نکته دیگر در مورد بلوک فارسی و عربی اینکه ، در یونی‌کد هیچ بلوک مشخصی برای زبان فارسی موجود نیست و حروف فارسی در بلوک عربی جای گرفته‌اند .

Unicode Version

Unicode Version

نکته قابل ذکر آن است که یونی‌کد یک استاندارد است و فونت‌هایی که پیاده سازی می‌شوند می‌توانند با این استاندارد سازگار باشند و یا نباشند ، اصولا سازگاری یک فونت با یونی‌کد به آن معنی است که آن فونت خاص ، هنگام پیاده سازی گلیف ها ،‌هر گلیف‌ را دقیقا سر جای خود قرار بدهد . نه جای گلیف دیگر ، هر فونت ، مربوط به هر زبان یا لهجه ای باشد ، باید تمامی گلیف‌ها را پیاده سازی کند .

توجه داشته باشید که یونی‌کد یک استاندارد است و دارای نسخه های مختلف ، به این معنی که در هر نسخه از یونی‌کد تعداد کاراکترهای بیشتری ( که از قبل در استاندارد، با توجه به زبان‌های مختلف تعریف شده بودند ) به محدوده کاراکترهای ایجاد شده می‌پیوندند ، مثلا در نسخه 6 بعد گلیف‌های زبان‌های باستانی ( ایرانی ) هم به جمع گلیف‌های ایجاد شده اضافه می‌شوند . برای نمونه فونت Arial که در ویندوز هست فونتی با حجم بیشتز از 20 مگابایت است که تقریبا بیشتر حروف یونی‌کد که در نسخه پنج وجود دارد را در خود جا داده است .

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

نکته دیگر آنکه ، از آنجا که یونی‌کد یک استاندارد است ، وابسته به هیچ پلت فروم سخت افزاری و یا نرم افزاری خاص نبوده و به هیچ محیط اجرایی وابسته نیست ، چون اصولا یونی‌کد ، یک مفهوم است . همچنین به همین دلیل است که فونت‌های یونی‌کد به ساختار صفحه کلید وابستگی ندارند و مهم نیست که شما از چه آرایشی برای تنظیم کاراکترهای خودتان بر روی کیبورد استفاده کرده‌اید . ( توجه داشته باشید که یونی‌کد یک مفهوم است ، مفهومی با این معنی که هر کاراکتر دارای یک کد انحصاری است و در فلان بلوک قرار گرفته و این قضیه هیچ ارتباطی با آرایش صفحه کلید ندارد ،  )

نکته فرعی : توجه داشته باشید که کار کیبورد تولید یک کد به ازای هر کاراکتر است ، به این معنی که هر وقت روی کلیدی را کیبورد فشار می دهید ، درایور کیبورد ( که معمولا یک فایل dll است ، مثل kbdfa.dll ) کد یونی‌کد معادل آن گلیف خاص را تولید کرده و برای سیستم‌ عامل ارسال می‌کند . سیستم عامل هم بسته به کد دریافتی اقدام به نمایش و ثبت کلید می‌کند . برای اینکه شما بتوانید یونی‌کد را فارسی بنویسید ، اول باید این زبان را روی ویندوز یا هر سیستم عامل دیگری فعال کنید ، با این کار یک dll ایجاد می‌شود که ترکیب چیدمان و کدهای یونی‌کد را در خود قرار داده و هنگامی که شما تایپ می‌کنید ، بسته به چیدمانی که برای آن تعریف شده ، کدهایی را تولید می‌کند . به همین دلیل است که شما می‌توانید چندین حالت و ترکیب مختلف از چیدمان‌های صفحه کلید را همزمان داشته باشید و در مواقع لزوم از آنها استفاده کنید . اما از آنجا که هیچ کدام از این چیدمان‌ها استاندارد نیستند باید یک ترکیب و چیدمان استاندارد برای این کار پیدا کرد که این چیدمان را بخش تحقیقات مرکز محاسبات دانشگاه صنعتی شریف ایجاد کرده و در حال حاضر قابل استفاده است .  ( ‌ادامه مطلب را مطالعه کنید و از لینک‌های انتهای مطلب ، چیدمان جدید را دانلود کنید )

با توجه به مسایل گفته شده در بالا ، شورای عالی انفورماتیک کشور ، که مسئولیت تدوین استانداردهای انفورماتیکی کشور را بر عهده دارد ، پروژه‌ای را به بخش تحقیقات مرکز محاسبات دانشگاه صنعتی شریف سفارش داده ، تا براساس بررسی‌های فنی و استانداردها ، اقدام به پیاده سازی فونت یونی‌کد نمایند . به همین منظور استاندارد « فن‌آوری اطلاعات – تبادل و شیوه نمایش اطلاعات فارسی براساس یونی‌کد  » که پیش‌نویس آن توسط شورای عالی انفورماتیک تهیه شده در دو جلسه کمیته ملی استاندارد رایانه و فرآوری داده‌ها ،‌ مورخ 19/12/1380 و 18/02/1381 مورد تایید قرار گرفته است . ( منظور از این جمله آن است که :  درواقع فونت تهیه شده توسط مرکز محاسبات دانشگاه شریف ، از سوی شورای عالی انفورماتیک پذیرفته شده است ) و درحال حاضر به استناد بند یک ماده سه ، قانون اصلاح قوانین و مقررات موسسه استاندارد و تحقیقات صنعتی ایران ، مصوب بهمن 1371منتشر شده و باید به عنوان فونت‌های یونی‌کد فارسی از سوی همه اشخاص حقیقی و حقوقی پذیرفته شود .

باتوجه به مطالب بالا و تعریف یونی‌کد ، و وجود فونت‌های استاندارد فارسی ( که از اینجا قابل دریافت است ) ، می‌شود بسیاری از مشکلات نرم افزاری را به خصوص در وب ( با وجود مشکل حرف ک و ی فارسی در جستجوها و … ) حل کرد .

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

لینک‌های مرتبط

2 Responses to فونت یونی‌کد چیست ؟

  1. afsharm says:

    خوب بود

  2. Pingback: لینک‌های مرتبط با صفحه کلید استاندارد فارسی، یونیکد و فارسی نویسی « دنیای پیرامون

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: