۱- سازگار با یونیکد بودن امکان خیلی پیچیده یا جدیدی نیست و قبلا هم فونتهای زیادی به طور کامل یا با نواقص اندکی این کار را کردهاند. البته منظور من (و شورای عالی انفورماتیک و خیلیهای دیگر) از «سازگاری کامل با یونیکد» سازگاری در حد حروف و علایم فارسی است نه کل حروف و علایم یونیکد چون از معدود فونتهایی که این کار را تا اندازهای کردهاند فونت آریال مایکروسافت است که عمده کاراکترهای رایج یونیکد در زبانهای مختلف را با چیزی حدود ۶۵ هزار کاراکتر پیاده سازی کرده است. حجم فایل این فونت بیش از ۲۰ مگابایت میباشد.
۲- ساختار یونیکد بلوک بندی شده است و هیچ بلوک مستقلی برای پشتیبانی از زبان فارسی اختصاص نیافته است. بلوک مورد استفاده برای زبان فارسی بلوک عربی است و از آنجا که بیشتر حروف و علائم فارسی و عربی مشترک هستند صرفا چند کاراکتر به طور اختصاصی به حروف و علایم زبان فارسی اختصاص پیدا کرده است.
۳- عنوان «سازگار با یونیکد» به دو مفهوم خیلی مهم اشاره دارد:
الف- در محل هر کاراکتری فقط شکل (glyph) خود آن کاراکتر پیاده سازی شده باشد نه کاراکتر دیگری و بالعکس یعنی شکل (glyph) هر کاراکتری صرفا در محل اختصاصی خودش پیاده سازی شده باشد و نه جای دیگری. مثلا در محل U+0041 که مخصوص حرف لاتین A است فقط شکل A قرار دارد نه چیز دیگری. معروفترین فونتهایی که این قاعده را رعایت نمیکنند فونتهایی هستند که در کاربردهای گرافیکی مثل فوتوشاپ به کاربر میروند. فونتهای IPT برنا رایانه از این دست هستند. در مثال حالت بالعکس هم باید گفت کاراکتری مثل «ی» فارسی (ARABIC LETTER FARSI YEH) باید در محل U+06cc پیاده سازی شده باشد و نه جای دیگری. در خیلی از فونتهای فارسی شکل «ی» فارسی بدون نقطه در محل کاراکتر «ي» عربی نقطه دار (ARABIC LETTER YEH) یعنی U+064a پیاده سازی شده که بسیاری از کاربران را به اشتباه انداخته است. کشف این اشتباه با توجه به اینکه صفحه کلید ویندوزهای قبل از ویستا به طور پیش فرض فقط «ي» عربی نقطه دار را تایپ میکنند و بسیاری از فونتهای رایج هم «ي» عربی را با برداشتن دو نقطه زیر آن نمایش میدهند، کار سختی است. کاربران هم وقتی متوجه این موضوع میشوند که نوشتههای خود، که با فونتهای نیمه استاندارد نوشتهاند را به سکوی دیگری مثل وب منتقل میکنند. فونتهای سری B برنا رایانه و خیلی فونتهای رایج دیگر از این دسته هستند. از دیگر سو تعدادی از فونتها هر دو طرف رفت و برگشت قاعده مورد بحث را رعایت کردهاند که فونتهای فارسی وب یکی از آنهاست.
ب- مفهوم دوم عنوان «سازگار با یونیکد» یعنی این که فونت مورد بررسی کاراکترهای محدوده مورد استفاده زبان فارسی را به طور کامل و به شکل صحیح پیاده سازی کرده باشد. به عنوان مثل حروف «گ»، «ژ»، «پ»، «ک» فارسی، «ی» فارسی و صد البته حروف مشترک عربی و فارسی و علایم و کاراکترهای مشترک همه زبانها را. خوشبختانه فونتهای رایج در این زمینه دچار مشکلات کمتری هستند.
۴- غیر از ایران، کشورها و مناطق دیگری هم از استفاده کنندگان و تولید کنندگان فونتهای سری عربی (عربی، فارسی، پشتو، کردی و…) به شمار میروند از جمله کشورهای عربی و کشورهای حاشیه خلیج فارس، بعضی از همسایههای شمالی ایران، پاکستان و… و البته هیچ کدام از این گروهها هم بیکار ننشستهاند و برای خط و زبان خود فونتهای مناسبی پیاده سازی کردهاند (یا توسط مراکزی مثل مایکروسافت برایشان پیاده سازی شده). بیشتر این فونتها را میتوان با تغییرات اندکی به عنوان فونت فارسی هم استفاده کرد. حتی بعضی از آنها را میتوان مستقیما و بدون هیچ تغییری مورد استفاده قرار دارد. مثل بعضی فونتهای مجموعه Office مایکروسافت.
۵- سه تا موضوع هست که ربطی به فونت، یونیکد و سازگاری فونت با یونیکد ندارد:
الف- شکل (glyph) یک کاراکتر مجزای از کد آن میباشد و نباید این دو را با هم اشتباه گرفت. مبنای ما همیشه کد کاراکترهاست نه شکل آنها.
ب- یونیکد هیچ وابستگی به سیستم عامل، نرم افزار مورد استفاده، محیط اجرا و یا هر چیز دیگر شبیه به این ندارد. چون یک استاندارد کلی و سراسری است.
ج- سازگاری فونت با یونیکد ارتباطی به IME یا Keyboard Layout یا صفحه کلید ندارد. خیلی اوقات با اینکه از یک فونت استاندارد و یونیکد استفاده میشود باز هم نمیتوان بعضی کاراکترها را استفاده کرد. مثلا اگر صفحه کلید ویندوزی (درایور آن نه خود صفحه کلید) استاندارد نباشد، هر چقدر که روی سر «ک» بکوبید باز هم حرف «ك» عربی است که نمایش داده میشود نه خود «ک» فارسی.
۶- چطور میشود فهمید که یک فونت همه کاراکترهای فارسی (و بعضی حروف خاص عربی مثل «ي» نقطه دار و «ك» بدون سرکش) را به شکل صحیح پیاده سازی کرده یا نه؟ در مورد کاراکترهای مشترک و عمومی که معمولا مشکل خاصی نیست. اما در مورد کاراکترهای خاص و مورد دار از جدول زیر استفاده کنید. این جدول لیستی از کاراکترهای مورد دار را نمایش میدهد.
نام کاراکتر | شکل کاراکتر | کد کاراکتر | توضیحات |
فاصله مجازی | ZWNJ | 200C | همان نیم فاصله معروف |
اتصال مجازی | ZWJ | 200D | برای نگه داشتن حروف تنها در حالت کوچک |
ویرگول فارسی | ، | 060C | |
نقطه ویرگول فارسی | ؛ | 061B | |
علامت سوال فارسی | ؟ | 061F | |
کشیدگی فارسی | ـ | 0640 | |
رقم ۰ تا ۹ فارسی | ۰۱۲۳۴۵۶۷۸۹ | 06F0-06F9 | ارقام فارسی با ارقام عربی یا لاتین فرق دارند. |
ممیز فارسی | ٫ | 066B | ممکن است در فونتهای مختلف اشکال مختلفی به خود بگیرد. |
جداکننده هزارهای فارسی | ٬ | 066c | // |
درصد فارسی | 06AA | ||
حرف فارسی کاف | 06A9 | ||
حرف فارسی ی | 06CC | ||
حرف عربی ك | 0643 | حتما باید به شکل عربی خودش پیاده سازی شده باشد تا کاربر هیچ وقت اشتباها آنها را به جای معادل فارسیشان به کار نبرد. | |
حرف عربی ي نقطه داری | 064A | // | |
حرف عربی ى بدون نقطه | 0649 | // |
دیدگاهها
سلام وبلاگ مفیدی دارین.
خیلی مطلب مفیدی بود یکی از سوالاتی بود که بنده باید به پاسخ آن می رسیدم
خیلی ممنون از مطالب مفیدی که قرار می دهید.
امید وارم موفقیت روز افزون داشته باشید.
درود
از مقاله شما در نشانی زیر استفاده شد
درستنویسی و بررسی واژگان و اصطلاحات در زمینه کامپیوتر و آی.تی
http://forum.p30world.com/showthread.php?p=5912102#post5912102
شهره ایران منش
من میخوام یک کتاب که متنش هم عربی داره و هم فارسی تایپ کنم، یکی کمکم کنه و دوتا فونت نازک و ذخیم استاندارد بده، من بتونم کار کنم. تو تایپ این کتاب به بن بست خوردم.
http://shohreiranmanesh.persianblog.ir/
سلام. من ويندوز 7 شصت و چهار بيتي دارم و از كيبورد لي اوتي استفاده مي كنم كه دو حرف كاف و يا رو به شكل عربي تايپ مي كنه (كاف بدون سركش و يا با دو نقطه در زير آن). آيا استفاده از اين كيبورد لي اوت باعث ميشه بعد از پر كردن فرم هاي ثبت نام اينترنتي دو حرف كاف و يا عربي به صورت ناخوانا يا مثلا علامت سؤال در سايت درج بشن؟ البته خودم فكر مي كنم مشكلي پيش نمياد اما مي خواستم مطمئن بشم. ممنون ميشم اگه به اين سؤال پاسخ بديد. موفق باشيد.
نویسنده
سلام. ببخشید که اینقدر دیر جواب می دهم. متاسفانه خیلی وقت است که روی این موضوع کار نمی کنم و نمی توانم کمکی کنم.