در تکمیل صحبتهای آقای قادری عرض کنم که هر کاراکتر یک عدد متناظر داره که اخیرا Unicode استاندارد شده ولی قبلا ASCII استاندارد بود. توی BIOS هم همین ASCII رو میشناسه. یعنی یه سری کاراکتر رو متناظر میکنه با یه سری عدد. مثلا عدد ۶۵ متناظر با کاراکتر a هست (اگه اشتباه نکنم). حالا این عددا به چه درد میخوره؟
کیبورد موقعی که یه دکمش فشرده میشه یک یا چند بایت میفرسته به سیستم عامل (بستگی داره دکمه های کنترلی {ALT و ALTGR و CTRL و SHIFT و META} رو بگیرید یا نه). از اینجا به بعدش رو دو قسمت میکنم.
۱. قدیم: فقط ASCII بوده و صفحات همگی خط فرمانی بودن. هر کاراکتر توی یه عرض ثابت چاپ میشده روی مانیتور. مثلا اگه ۲۰ تا i مینوشتن و توی خط پایینش ۲۰ تا m، ایندوتا یه عرض رو اشغال میکردن. اون عددی که از کیبورد گرفته میشده میرفته به سیستم عامل و بر اساس اون یه آرایه مثلا ۷*۱۵ از پیکسل ها رو یه تعدادیش رو روشن میکرده. که مثلا خروجیش میشده حرف a
(البته توی عکس بالا ابعاد کاراکترها فرق دارن)
۲. جدید: حالا Unicode اومده و صفحات هم از حالت خط فرمانی در اومدن. حالا اون عددی که از کیبورد گرفته میشه، طبق
فونتی که توسط سیستم عامل استفاده میشه، تبدیل میشه به یه آرایه چند*چند که ابعادش متغیره. (دقیقا مثل عکس بالا). حالا اگه من ۲۰ تا i بنویسم عرض کمتری رو اشغال میکنه تا اینکه من ۲۰ تا m بنویسم. (البته بعضی فونتها مثل monospace و... کاراکترهای با عرض یکسان تولید میکنن)
حالا این همه چرت گفتم که به چی برسم؟ اینکه شما میبینی توی مثلا ترمینال میشه فارسی نوشت به خاطر اینه که از فونت استفاده شده. اگه شما میخوای توی ترمینال سیستم عاملی که نوشتی بتونی فارسی بنویسی ۲ تا راه داری.
۱. مثل راه اول رو بری ولی مثلا عدد ۶۵ رو متناظر کنی با مثلا حرف «ب».
۲. طبق استاندارد پیش بری ولی حداقل یه فونت تعریف کرده باشی برای نمایش کاراکترهای فارسی.
امیدوارم جایی اشتباه نگفته باشم.