حتما این روزها کلمه Unicode بارها به گوشتان خورده و یا در وب سایت ها و برنامه های کاربردی جدید آن را دیده اید و میخواهید بدانید که Unicode چیست. همینطور که حتما میدانید کامپیوتر فقط با عدد و رقم سرکار دارد و تمام اطلاعات نوشتاری,صوتی و تصویری نهایتا بصوت اعداد و ارقام در کامپیوتر ذخیره و پردازش میشوند . حال ما برای اینکه بتوانیم اطلاعات نوشتاری خودمان را برای کامپیوتر قابل فهم کنیم مجبوریم تا به هر حرف از حروف الفبا, یک کد عددی اختصاص بدهیم. از این رو صدها نوع سیستم کد گذاری به وجود آمده و برای زبانهای مختلف سیستم های مختلف معرفی شده.این مسئله در مورد زبان رسمی ایران یعنی فارسی هم صادق بود و تازه هر شرکت نرم افزاری ایرانی هم یک سیستم کد گذاری مخصوص خودش را داشت و دارد و هیچ وقت یک سیستم کد گذاری استاندارد برای زبان فارسی بوجود نیامد که همه برنامه نویسها از آن استفاده کنند. این مسئله در مورد زبان های دیگر هم وجود داشت.تا اینکه بالاخره Unicode معرفی شد.
یونیکد نه یک نوع فونت خاص است نه یک برنامه خاص بلکه یک استاندارد کد گذاری برای حروف الفباست مانند ANSI . Unicode به همه حروف ، اعداد یکتایی مستقل از محیط سیستم عامل و برنامه و زبان اختصاص میدهد. این سیستم میتواند تمام حروف زبانهای مختلف زنده امروز دنیا را در خودش جای دهد و به هر کدام از این حروف کد یکتایی اختصاص دهد. بکار گیری Unicode در وب سایت ها و برنامه های Clint-Server میتواند بسیار مفید باشد و ما نگران این نیستیم که کاربران وب سایت از چه سیستم عامل و از چه مرورگر اینترنتی استفاده میکنند فقط باید از استاندارد Unicode پشتیبانی کند. امروزه بسیاری از شرکتهای پیشتاز دنیای کامپیوتر این استاندارد را پذیرفته اند و تقریبا تمامی برنامه های کاربردی جدید از این سیستم کد گذاری حمایت میکنند مثلا از سیستم عامل Windows Me به بعد یعنی Windows 2000 , Windows XP و Windows server.net تماما بر مبنای Unicode بنا شده اند و سیستم عامل های دیگر مثل MacOs و Solaris و چندین سیستم عامل دیگر هم از Unicode حمایت میکنند . برنامه کاربردی نیز مانند Office 2000 و Office XP بطور کامل از این استاندارد پشتیبانی میکنند. و شما میتوانید با استفاده از Front Page XP یا Front Page 2000 یا Visual Studio.net صفحات وب فارسی ایجاد کنید.
یونیکد Unicode ، استانداردی صنعتی است که اجازه میدهد نمادهای تمامی رسمالخطهای دنیا با رایانه نمایش داده شوند. اغلب نوآوری های جدید با پیچیدگیها و جزئیات زیادی همراه است و در ظاهر برای استفاده ساده نیستند. این عوامل سبب میشوند که کاربران روی خوشی به آنها نشان ندهند، هرچند در بعضی از موارد بهناچار آن را فراگرفته و استفاده میکنند ؛ یونیکد نیز از این قاعده مستثنی نیست. قبل از درک مفهوم یونیکد، بد نیست درباره سیستمهای کدگذاری بیشتر بدانیم. همانطور که میدانید هر دادهای که در کامپیوتر وجود دارد، حتی تصاویر یا فیلمها، بهصورت یک سری از ارقام در مبنای 2 ذخیره میشوند. این دادهها در اصل از رقم های صفر و یک تشکیل شده و به صورت خاصی ذخیره شدهاند. ما میتوانیم اطلاعاتی مانند یک تصویر را طبق الگوریتمهایی ذخیره کرده و آن را مشاهده یا ویرایش کنیم. تمامی حروف و اعدادی که نمایش داده میشوند نیز به همین شکل هستند. اختصاص دادن یک عدد خاص با در نظر گرفتن قالب خاص برای کاراکترها را "کدگذاری" می گوییم که این کدگذاریها بهصورت استانداردهای جهانی در میآیند و مانند استاندارد و یا یونیکد در سیستمهای کامپیوتری از آنها استفاده میشود. یونیکد به هر نویسه، یک عدد مشخص اختصاص میدهد؛ مستقل از محیط، مستقل از برنامه، و مستقل از زبان. استاندارد یونیکد را پیشتازان صنعت کامپیوتر از قبیل شرکتهایی چون آی.بی.ام، اَپل، اچ.پی، اورکل، جاست سیستم، سان، سای بیس، مایکروسافت یونیسیس و بسیاری از شرکتهای دیگر پذیرفتهاند.
امروزه یونیکد در بسیاری از سیستم عاملها، مرورگرها و بسیاری از محصولات دیگر پشتیبانی می شود. پیدایش استاندارد یونیکد و در دسترس بودن ابزارهایی که از آن پشتیبانی میکنند، از چشمگیرترین روندهای جدید در صحنه جهانی فناوریهای نرم افزاری بوده است. گنجاندن یونیکد در سایتها و برنامههای کاربردی، در مقایسه با کدهای قدیمی، میتواند باعث کاهش قابلملاحظه هزینهها شود. یونیکد این امکان را فراهم میکند که یک محصول نرمافزاری یکسان یا یک سایت مشخص، بتواند بدون نیاز به طراحی مجدد، در محیطها، زبانها و کشورهای متعددی کار کند. یونیکد به دادهها نیز امکان میدهد که بدون تحریف از سیستمهای مختلف داده شوند؛ بدینترتیب یونیکد امکان کدگذاری همه نویسههای مورد استفاده در نوشتن زبانهای دنیا را فراهم میکند.
"استاندارد یونیکد" استاندارد جهانی کدگذاری نویسه هاست که برای ارائه متون جهت پردازش کامپیوتری به کار میرود. استاندارد یونیکد اطلاعات بیشتری نیز در مورد نویسهها و کاربردهایشان فراهم کرده است. یونیکد این استاندارد از کدگذاری 16 بیتیای استفاده میکند که برای بیش از 65000 نویسه جا فراهم میکند. یونیکد برای کلیه نویسههای مورد استفاده در زبانهای عمده دنیا، کد تعیین کرده است. به علت فراخ بودن فضای تخصیص نویسه، این استاندارد بسیاری از نمادهای لازم برای حروفچینی با کیفیت بالا را نیز در بر گرفته است. از خطهای مورد پشتیبانی این استاندارد می توان به لاتین (در بر گیرنده اکثر زبانهای اروپایی)، سیریلیک (روسی، صربی)، یونانی، عربی (شامل عربی، فارسی، اردو، کردی)، عبری، هندی، ارمنی، آسوری، چینی، کاتاکانا و هیراگانا (ژاپنی)، و هانگول (کره ای) اشاره کرد. بهعلاوه، تعداد زیادی نماد ریاضی و فنی، علائم نقطهگذاری، پیکان و علامتهای متفرقه در این استاندارد وجود دارد. این استاندارد برای علامتهای ترکیب شونده یا اِعرابها نیز کدهایی در نظر گرفته است که برنامه نویسان میتوانند از آنها برای نویسهها و نمادهای خودشان استفاده کنند.
یونیکد شیوهای نیز برای کدگذاری 8 بیتی متون مشخص کرده است که نویسه ها را پس از اعمال یک تابع خاص به کدشان، بصورت دنبالههایی که از یک تا چهار بایت دارند نگه میدارد. این شیوه که با UTF-8 شناخته میشود، به این خاطر است که نویسههای اسکی را عینا حفظ می کند و در نتیجه، هم برنامههای قدیمی راحتتر با آن کنار میآیند و هم طول پروندههای لاتین را زیاد نمیکند، بسیار محبوب است. در واقع بسیاری از سیستمهایی که ادعای پشتیبانی یونیکد را دارند، تنها UTF-8 را پشتیبانی میکنند و پروندههای یونیکد، اعم از کاربردهای اینترنتی یا موارد استفاده محلی، عمدتا در قالب UTF-8 ذخیره شدهاند. در استاندارد یونیکد، نویسههای فارسی در بلوک مربوط به خط عربی قرار دارند. این بلوک برای در بر گرفتن نویسههای زبانهایی که از خط عربی استفاده میکنند، مثل فارسی، اردو، پشتو، سندی، و کردی گسترش یافته است. این بلوک نشانههای قرآنی از قبیل نشانههای سجده و پایان آیه، و علائم وقف را نیز در بردارد.
در یونیکد با وجود یکیسازی کدهای حروف مشترک، برای حروف فارسیای که بار معنایی یا نمایشی متفاوت با حروف عربی دارند، نویسههای جداگانه در نظر گرفته شده است. یعنی کلیه حروف خاص فارسی ( پ،چ،ژ،گ ) و نیز «ک» و «ی» فارسی که با حرف مشابه در عربی تفاوت نمایشی دارند، مکان جداگانهای اختصاص دادهاند. کلیه اعرابهای متداول حضور دارند و میان شکل فارسی ، اردو و عربی ارقام نیز بهعلت شکل و رفتار متفاوت، تفاوتهایی منظور گشته است.
از طرف دیگر، علائم نقطهگذاریای چون نقطه و فاصله که شکل یکسانی در خطهای لاتین و عربی دارند، کد یکسان دارند. علائمی چون پرانتز نیز، بسته به جهت متن، آینهای میشوند؛ یعنی بهطور مثال، نویسه ی 0028 نماینده "پرانتز باز" است، و نه "پرانتز سمت چپ". یونیکد اتصال مجازی و فاصله مجازی را نیز تحت نامهای "اتصال با عرض صفر" و "بیاتصالی با عرض صفر" به رسمیت ISO میشناسد. به خاطر سازگاری با استاندارهای موجود در بعضی از کشورهای عربی، 10646 یونیکد بلوک جداگانهای را نیز به شکلهای مختلف حروف عربی اختصاص داده است که استفاده از آنها بهشدت منع شده است. این بلوک معمولا فقط برای تعیین جای شکلهای مختلف حروف در قلمها به کار میرود. همچنین این استاندارد توضیحات مفصل و دقیقی درباره شیوه های پیادهسازی، از جمله شیوه "متصلسازی حروف" و "نمایش متون راست به چپ و دو جهته" دارد که برنامهنویس را از مراجعه به راهنمای محلی بی نیاز میکند. از مهمترین مزایایی که یونیکد برای زبان فارسی دارد (مثل بسیاری زبانهای دیگر) میتوان موارد زیر را نام برد :
- در نسخه استاندارد هر نرمافزاری که از این استاندارد پشتیبانی کند، میتوان فارسی نوشت یا متون فارسی را خواند. بدینترتیب دیگر نیازی به تأمین نسخههای خاص فارسی یا عربی نیست.
- برای خواندن متون فارسی که توسط شرکت خاصی نوشته شده اند، نیازی به داشتن فونت خاص آن شرکت نداریم و هر متن فارسی که با استاندارد یونی کد کدگذاری شده باشد، با هر فونتی یونیکدی قابلمشاهده است.
- امکان استفاده همزمان از زبانهای فارسی و انگلیسی را تأمین میکند.
- بدون استفاده از فونتهای خاص امکان استفاده از علایم خاص را فراهم میکند.
بطور کلی ، یونیکد به شرح زیر است :
- نویسه های شانزده بیتی
- ترتیب مفهومی ( در مقابل دیداری )
- کارایی
- یکیسازی ( اختصاص یک کد به نویسههای مشترک در چند زبان مختلف )
- نویسه، نه شکل ( یک "ع" ، و نه چهارتا : "ﻋ"، "ﻌ"، "ﻊ" ، "ع" )
- ترکیب پویا
- بار معنایی ( حرف بودن، مقدار عددی )
- دنبالههای معادل ( امکان ذخیرهسازی یک متن به دو شکل مختلف ولی معادل )
- متن ساده ( و نه مفاهیمی مثل تغییر قلم، جدول بندی، و صفحهآرایی )
- قابلیت تبدیل ( هر متن موجود در قالب یک مجموعه نویسه سنتی باید بدون از بین رفتن معنا قابل تبدیل به یونیکد باشد )
اصطلاحات :
- نویسه : در مقابل Character ، کوچکترین واحد متن. مثلا یک حرف لاتین ، یک اعراب فارسی ، یک علامت نقطهگذاری ، یک نشانه بریل ، یا یک نماد ریاضی.
- شکل : در مقابلGlyph ، کوچکترین واحد نمایش متن. برای بعضی نویسهها مثل حروف فارسی و هندی ممکن است چند شکل موجود باشد. مثلا " ﺑ " و "ﻊ" از اشکال نمایشی محسوب میشوند.
- مجموعه نویسه : در مقابل Character Set ، مجموعهای از نویسهها که به هر نویسه عددی اختصاص میدهد که نماینده آن نویسه محسوب میشود و در تبادل اطلاعات استفاده میشود.
- مجموعه کد : در مقابل Codepage ، سیستمی که به هر نویسه دنباله مشخصی از بایتها را متناظر میکند. مجموعه نویسهها میتوانند به شکل یک یا چند مجموعه کد قابل استفاده باشند.
- اسکی : استاندارد 7 بیتی مصوب موسسه ملی استاندارد امریکا و تایید شده توسط ایزو که مبنای تقریبا تمامی مجموعه نویسههای امروزی است.
برای گسترش و ترویج استاندارد Unicode یک کنسر سیوم ایجاد شده است. استفاده از Unicode در حال افزایش است و برنامه ها و وب سایت های آینده تماما از این استاندارد استفاده خواهند کرد.این مسئله برای ما فارسی زبانها نیز موقعیت مناسب ایجاد کرده و میتوانیم در عرصه اینترنت مطالب خود را به زبان فارسی بدون استفاده از روش های مثل ایجادفایلهای تصویری از متن و قرار دادن آن درصفحه وب و یا استفاده از کدگذاری زبانهای دیگر مانند زبان عربی عرضه کنیم . این مسئله فرایند ایجاد وب سایت ها و برنامه های فارسی را بسیار آسان تر و کم هزینه تر کرده است .
-
- تعداد بازدید: 6311
- تاریخ انتشار: يكشنبه 02 خرداد 1389 ساعت 05:24