نماد سایت بلاگ ایران هاست

unicode چیست ؟ از utf-8 چه میدانید

یونیکد چیست

وقتی شما، کاراکتری را در یک برنامه ویرایش متن یا اپلیکیشن وب قرار می‌دهید، این کاراکتر با استفاده از مجموعه‌ای از اعداد، کدگذاری می‌شود که به اصطلاح به آن یونیکد (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 به جای ۷ بیت، از یک بایت کامل (یعنی ۸ بیت)، برای کدگذاری استفاده شود. لذا تعداد کاراکترها به ۲۵۶ عدد می‌رسید. بر این اساس، کاراکترهای بعد از ۱۲۷ تا ۲۵۵ نیز، به عنوان کدهای رزرو شده در نظر گرفته شدند و زبان‌های دیگر، عموما در این بازه قرار می‌گرفتند.

اما در این محدوده بین زبان‌های مختلف، استاندارد واحدی وجود نداشت و هر زبانی، کد مختصِ الفبایِ خودش را نشان می‌داد. به عبارت دیگر کد ۲۰۰ در یک زبان، حرف متفاوتی را در زبان دیگر برمی‌گرداند. در نتیجه، نیاز به استاندارد واحدی بود تا ضمن سازگاری با تمامی‌زبان‌ها، کدهای منحصر به فردی را برای هر کاراکتر در نظر بگیرد.

 

بیشتر بخوانید: pwa چیست

 

تلاش برای ایجاد مجموعه کاراکتر های واحد برای زبان های مختلف

در ابتدا دو تلاش مستقل برای ایجاد مجموعه کاراکترهای واحد صورت گرفت.

۱- ISO-10646

“ISO-10646” پروژه سازمان بین‌المللی استاندارد بود

۲-Unicode

پروژه بعدی Unicode نام داشت که توسط کنسرسیومی ‌‌به نام کنسرسیوم یونیکد سازماندهی می‌شد.

داشتن دو نوع استاندارد مطمئنا چیزی نبود که بتوان آن را استاندارد واحدی نامید.  ISO و Unicode این مطلب را دریافتند و تصمیم گرفتند در سال ۱۹۹۱ به یکدیگر بپیوندند.

تفاوت کد اسکی با یونیکد

Unicode و ASCII هر دو از استانداردهایی هستند که برای Encoding متن ها استفاده می شوند. در واقع این دو استاندارد در برنامه نویسی باعث می شوند تا بین زبان های مختلف ارتباط برقرار شود.

 

بیشتر بخوانید: کد نویسی چیست

روش های کدگذاری Unicode چیست ؟

همانطور که در بالا اشاره شد، یونیکد به سه روش کدگذاری را انجام می دهد که عبارتند از:

در واقع UTF مخفف عبارت Unicode Transfer Format  و به معنای فرمت انتقال یونیکد است. در ادامه به این پرسش پاسخ خواهیم داد که UTF-8 چیست

تفاوت این روش‌های کدگذاری، در نحوه ارایه حروف، اعداد و علائم، بین زبان‌های کشورهای مختلف است. به طوری که نحوه ارایه کاراکترها در یک کشور با کشور دیگر متفاوت است.

utf-8 چیست؟

در پاسخ به پرسش utf-8 چیست بایستی گفت، اولین بار بطور رسمی ‌در کنفرانس USENIX در سال ۱۹۹۳ معرفی شد. در حال حاضر UTF-8 ، غالب‌ترین روش کدگذاری کاراکتر در میان وب‌سایت‌ها است. Utf-8، روشی است که قابلیت کدگذاری تمامی‌کاراکترهای موجود، و یا به عبارتی تمامی‌ کد پوینت‌های موجود در یونیکد را دارد.

UTF-8، همانطور که گفته شد الگوریتمی است که اعداد مربوط به پوینت‌کد را به باینری تبدیل می‌کند، بطوری که بتوان آنها را بر روی دیسک ذخیره کرد.

برای نمونه در ابتدا به یک نرم‌افزار، کدی شبیه به کد زیر را ارایه می‌کنیم :

  ۱۱۰۱۰۰۰ ۱۱۰۰۱۰۱  ۱۱۰۱۱۰۰ ۱۱۰۱۱۰۰   ۱۱۰۱۱۱۱

نرم افزار می‌داند که داده ارایه شده یک رشته یونیکد بر مبنای UTF-8 است و باید آن را بصورت متن به کاربر نشان دهد. در قدم اول، بر اساس روش رمزگشاییUTF-8 ، مقدار باینری آن را به اعداد تبدیل می‌کند و در نهایت این کدها را بر می‌گرداند :

۱۰۴ ۱۰۱ ۱۰۸ ۱۰۸ ۱۱۱

نرم افزار می‌داند که این، یک رشته یونیکد است. نرم‌افزار فرض می‌کند که هر عدد یک کاراکتر را بر می‌گرداند. در این هنگام، هر عدد را به کاراکتر متناظر با آن ترجمه می‌کند، نتیجه کلمه “Hello” است.

همانطور که گفته شد، UTF-8 طول متغیری دارد و می‌تواند تا ۴ بایت افزایش یابد، ولی کاراکترهای اصلی (ASCII) را می‌تواند با یک بایت نمایش دهد. چون طول متغیری دارد باید روشی وجود داشته باشد که مشخص شود، کاراکتر از یک بایت یا چند بایت ساخته شده است.

لذا، UTF-8، در بایت اول تنها از ۷ بیت آن استفاده می‌کند و بیت اول آن برای این هدف کنار گذاشته شده است.

بنابراین به نسبت گفته شده، ۲ بایت درUTF-8 (۱۱^۲ = ۲۰۴۸ کاراکتر یا کد پوینت) ۱۱ بیت را ارائه می‌کند، ۳ بایت در UTF-8 از ۱۶ بیت پشتیبانی می‌کند (۱۶^۲ = ۶۵,۵۳۶) و ۴ بایت نیز، ۲۱ بیت (۲۱^۲ = ۲,۰۹۷,۱۵۲) را فراهم می‌کند.

با این وجود تعداد کاراکتر های مجاز در UTF-8 در حال حاضر”۲۰۹۷۱۵۲” است، در حالی که آخرین نسخه UNICODE 6.0 که در سال ۲۰۱۰ ارایه شد، تنها کمی ‌‌بیش از صدهزار کاراکتر یا پوینت کد را تعریف می‌کند.

UTF-8، از دیگر روش‌های استفاده شده در متن وب‌سایت‌ها، در حالِ حاضر پیشی گرفته است و در سال ۲۰۱۰ نزدیک به ۵۰ درصد، و در جولای سال ۲۰۱۵ به ۸۴ درصد رسیده است.

مزایای utf-8 چیست؟

معایب utf-8 

چرا UTF-8 بسیار محبوب است؟

دلیل آن در این حقیقت نهفته است که تمامی ‌کاراکترهای اسکی، تحت یک بایت تنها، در UTF-8  قرار می‌گیرند. لذا هم کاملا با نسخه‌های قدیمی‌ سازگار است  و هم برای زبان انگلیسی و دیگر زبان‌های اروپایی، از نظر حجم بهینه‌تر است.

به دلیل اینکه زبان انگلیسی و اروپای غربی، بیشترین استفاده را در میان کاربران اینترنت دارند، بنابراین UTF-8 به سرعت تبدیل به محبوب‌ترین یونی‌کد، در محیط وب شد.

تفاوت ansi و utf 8 چیست

ANSI و UTF-8 هر دو فرمت رمزگذاری هستند. ANSI یک قالب بایت رایج است که برای رمزگذاری الفبای لاتین استفاده می شود. در حالی که ، UTF-8 یک فرمت یونیکد با طول متغیر است (از ۱ تا ۴ بایت) که می تواند تمام شخصیت های ممکن را رمزگذاری کند.

تفاوت UTF-16 و UTF-32 با utf-8 چیست

در بیان اینکه تفاوت بین UTF-16 و UTF-32 با utf-8 چیست این نکته را باید گفت که UTF-8، نیاز به فضای اضافی برای ذخیره کد ASCII زبان انگلیسی ندارد، و بیشتر زبان‌های غرب اروپا را پوشش می‌دهد. برای زبان‌های چینی، ژاپنی و کره‌ای نیز، به ۵۰ درصد فضای بیشتر نیاز دارد، و برای زبان یونانی و سریلیک، به ۱۰۰ درصد فضای اضافه‌تر نیازمند است.

در مقابل، UTF-16 ‌ به فضای اضافه برای زبان های چینی، ژاپنی، کره ای نیاز ندارد، ولی برای زبان‌های اَسکی  و زبان‌های غرب اروپا ، یونانی و سریلیک نیاز به ۱۰۰ درصد کل فضای خود دارد.

UTF-32 ، طول ثابتی دارد و بیشترین فضا را اشغال می‌کند.

سخن آخر

با توضیحات ارایه شده در مورد یونیکد چیست و همینطور utf8 چیست، می‌توان دریافت چرا UTF-8 پرکابردترین روش کدگذاری در فضای وب است و محبوبیت آن نیز روزبه‌روز در حال افزایش است. این مورد حتی در هاست ایمیل نیز مهم است بطوری که عدم انتخاب استاندارد مناسب، می تواند باعث ناخوانا بودن ایمیل‌های شما شود. در نظر داشته باشید با وجود وب‌سایت‌های چند زبانه، سازگاری وب سایت با استانداردهای موجود، مهم‌ترین عاملی است که در انتخاب نوع روش کدگذاری خود باید آن را در نظر بگیرید.

خروج از نسخه موبایل