یونیکد و utf8 چیست؟
وقتی شما، کاراکتری را در یک برنامه ویرایش متن یا اپلیکیشن وب قرار میدهید، این کاراکتر با استفاده از مجموعهای از اعداد، کدگذاری میشود که به اصطلاح به آن یونیکد (UNICODE) گفته می شود. زمانی که مرورگر، محتوای اپلیکیشن وب را دریافت میکند، این اعداد رمزگشایی شده، بر روی نمایشگر نشان داده میشوند. محوریت اصلی این مقاله هم دقیقا همین اعداد و نشانه ها و بررسی پرسش یونیکد چیست و چگونگی رمزگشایی آن است و در نهایت به مبحث utf-8 پرداخته خواهد شد و به این پرسش که UTF-8 چیست پاسخ خواهیم داد.
UNICODE یا یونیکد چیست
در پاسخ به پرسش unicode چیست ؟ بایستی گفت حروف، اعداد و علائمی که در اپلیکیشنهای وب استفاده میشوند، به همان شکلی که شما آنها را میبینید، در کامپیوتر مدیریت نمیشوند. کامپیوترها فقط با اعداد سروکار دارند. پس این حروف و کاراکترها، باید به مجموعهای از اعداد ۰ و ۱ تبدیل شوند تا مدیریت آنها آسان باشد. لذا استاندارد واحدی باید وجود داشته باشد. بر همین اساس، مشخص میشود که هرکدام از این اعداد چه کاراکترهایی را نمایش دهند و چگونه بر روی دیسک ذخیره شوند. به این استاندارد اصطلاحا UNICODE گفته می شود.
در واقع یونیکد، مجموعهای از charset یا کاراکترست با اعداد منحصر به فرد است، که به آن در اصطلاح پوینت کد (Point Code) گفته میشود. هر پوینت کد، کاراکتر واحدی را نمایش میدهد. بر این اساس، استاندارد یونی کد سه نوع روش کدگذاری را تعیین میکند، و به یک کاراکتر اجازه میدهد در داخل یک یا چند بایت کدگذاری شود (یعنی در ۸ یا ۱۶ یا ۳۲ بیت).
باید بدانید که کاراکتر در علوم کامپیوتر برابر با حروف و اعداد در سیستم نوشتاری است.
انکودینگ یا encoding چیست؟
اگر بخواهیم در یک جمله به شما encode را توضیح دهیم، بایستی گفت تبدیل داده ها بصورتی که سیستم توانایی خواندن و استفاده از آن را داشته باشد، encoding گفته می شود. مثلا همین نمایش کاراکتر های خاص در وب نوعی انکدینگ به حساب می آید. در واقع encoding ، رمزگذاری فرآیند تبدیل داده ها به فرمت مورد نیاز برای تعدادی از نیازهای پردازش اطلاعات است، از جمله:
- تدوین برنامه و اجرای آن
- انتقال داده ، ذخیره سازی و فشرده سازی / رفع فشار
- پردازش داده های برنامه ، مانند تبدیل پرونده
تعریف کد اسکی یا ASCII
برای استاندارد انکدینگ، که در بالا به آن اشاره کردیم، انجمن استانداردهای آمریکا در سال ۱۹۶۰ یک روش کدگذاری ۷ بیتی، با نام ASCII که مخفف عبارت American Standard Code for Information Interchange است را معرفی کرد. در آن زمان، مجموعه کاراکترهای ASCII شامل ۱۲۸ کاراکتر (۷ بیت) که بیشتر مخصوص زبانهای لاتین بود، تعریف گردید.
در دهه ۱۹۸۰، تصمیم بر این شد که در مجموعه کاراکتر ASCII به جای ۷ بیت، از یک بایت کامل (یعنی ۸ بیت)، برای کدگذاری استفاده شود. لذا تعداد کاراکترها به ۲۵۶ عدد میرسید. بر این اساس، کاراکترهای بعد از ۱۲۷ تا ۲۵۵ نیز، به عنوان کدهای رزرو شده در نظر گرفته شدند و زبانهای دیگر، عموما در این بازه قرار میگرفتند.
اما در این محدوده بین زبانهای مختلف، استاندارد واحدی وجود نداشت و هر زبانی، کد مختصِ الفبایِ خودش را نشان میداد. به عبارت دیگر کد ۲۰۰ در یک زبان، حرف متفاوتی را در زبان دیگر برمیگرداند. در نتیجه، نیاز به استاندارد واحدی بود تا ضمن سازگاری با تمامیزبانها، کدهای منحصر به فردی را برای هر کاراکتر در نظر بگیرد.
تلاش برای ایجاد مجموعه کاراکتر های واحد برای زبان های مختلف
در ابتدا دو تلاش مستقل برای ایجاد مجموعه کاراکترهای واحد صورت گرفت.
۱- ISO-10646
“ISO-10646” پروژه سازمان بینالمللی استاندارد بود
۲-Unicode
پروژه بعدی Unicode نام داشت که توسط کنسرسیومی به نام کنسرسیوم یونیکد سازماندهی میشد.
داشتن دو نوع استاندارد مطمئنا چیزی نبود که بتوان آن را استاندارد واحدی نامید. ISO و Unicode این مطلب را دریافتند و تصمیم گرفتند در سال ۱۹۹۱ به یکدیگر بپیوندند.
تفاوت کد اسکی با یونیکد
Unicode و ASCII هر دو از استانداردهایی هستند که برای Encoding متن ها استفاده می شوند. در واقع این دو استاندارد در برنامه نویسی باعث می شوند تا بین زبان های مختلف ارتباط برقرار شود.
Unicode چیست ؟ در این مقاله با مفاهیم یونیکد، انکودینگ و کد ASCII و روش های کدگذاری unicode و تفاوت ansi و utf-8 و همینطور مزایا و معایب utf-8 آشنا می شوید.
iranhost.com