مفهوم ASCII و Unicode

بعد از تعریف انکودینگ، بریم تا واژه ASCII رو تعریف کنیم و ببینیم که چی هست. مجموعه کاراکترهای ASCII تشکیل شده از مقادیر عددی 0 تا 127 که شامل حروف کوچک و بزرگ انگلیسی، اعداد، نمادهای خاص، کدهای کنترل و دیگر الفبای غربی هستش. با توجه به سیستم اعداد دو دویی مجموع این 128 کاراکتر فقط به هفت بیت فضا نیاز داره و برای بیت آخر که شامل 128 مقدار دیگه میشه به طور دقیق تعیین تکلیف نشده.

پس متوجه شدین که ASCII مجموعه کاراکترهای انگلیسی رو میتونه کدگذاری (encode) کنه به داده های باینری؛ ولی آیا میشه که تمام متون دیجیتال ما انگلیسی باشه؟ این از بی اهمیتی زبان های دیگه هستش یا بیش از حد مهم بودن انگلیسی؟ در هر صورت کار درستی نیست و باید زبان های دیگه ای مثل چینی، عربی، فارسی، و به طور کلی تر زبان هایی که هیچ شباهتی به انگلیسی ندارن رو هم در نظر بگیریم. (اومانیسم)

اندیشمندان زمان شروع کردند به فکر کردن و راه حلی که ارائه دادن چیزی بود به نام «صفحه کد». صفحه کد از فضای تعریف شده ولی استفاده نشده بیت آخر در سیستم ASCII یعنی از اعداد 128 تا 255 استفاده میکنه تا مقادیر دلخواهمون رو بتونیم کدگذاری کنیم. باز مشکلی که پیش اومد این بود که ما با 128 کاراکتر بیشتر، دردی ازمون دوا نشد و باز هم این تعداد کاراکتر برای کل دنیا کافی نبود! و اینجا بود که متناسب با زبان های مختلف، صفحه کدهای مختلفی هم ساخته شد تا این نیاز بشریت به طور کامل رفع بشه.

خب ظاهرا مشکل ما دیگه حل شده و میتونیم با خیال راحت به انتقال اطلاعات متنی بپردازیم؛ منِ برنامه نویس، این خبر رو میرسونم به گوش مدیر سایت و تصمیم میگیریم که شروع کنیم به نوشتن مقالاتی به غیر از زبان انگلیسی تا کاربرا راحت تر باشن. و خب تقریبا همه چیز خوب پیش میره و ما با استفاده از صفحه کد فارسی اطلاعات رو کدگذاری میکنیم و کاربرا هم دقیقا با همون صفحه کد، اطلاعات رو کدگشایی و سپس مطالعه میکنن. یک لحظه تصور کنین که این سایت یک سایت بین المللی باشه و چند تا کاربر از یه کشور دیگه مثل روسیه سایت محبوب آیزی لرن رو انتخاب میکنن و شروع میکنن به خوندن سایت ولی فورا فراری میشن و دیگه پشت سرشون رو هم نگاه نمیکنن، چرا؟ چون اونها در تلاش بودن تا اطلاعاتی رو که ما با صفحه کد فارسی کد گذاری کردیم رو با یه صفحه کد دیگه کدگشایی کنن و خب فکر میکنم بتونین متصور بشین اون حجم از بهم ریختگی که ممکنه رخ بده رو. مثلا مقدار 200 میتونه بیانگر کاراکتر «ع» باشه توی صفحه کد فارسی، ولی همین مقدار 200 ممکنه حتی جزو حروف زبان روسی هم نباشه توی صفحه کد روسی!

در نهایت بعد از تمام مشکلاتی که وجود داشت بشر به راه حل ایده عال خودش رسید، UNICODE!

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

گفتنش عاری از لطف نیست که امروزه ما بدون هیچ دردسر و چالشی از تکنولوژی استفاده میکنیم و تقریبا هیچ سختی هم برامون نداره؛ در صورتیکه هر بخشی از تکنولوژی امروز ما یک روزی غیر قابل استفاده بوده و کلی چالش داشتیم باهاش که افراد بزرگی با صرف کردن با ارزش ترین چیزی که داشتن یعنی زمان و علم، نعمت تکنولوژی رو برای باقی جهانیان به ارمغان آوردند.

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
برای ادامه، شما باید با قوانین موافقت کنید

keyboard_arrow_up