یونی‌کد

یونی‌کُد[۱] (به انگلیسی: Unicode) یک کدبندی نویسه و نمایش و پردازش متن به اکثر زبان‌های دنیا[۲] است. هر زبان یک قالب یونی‌کد دارد.

یونی‌کد
نشان‌واره ائتلاف یونی‌کد
نام(های)دیگرمجموعه‌نویسهٔ جهانی (UCS)
زبان(ها)بین‌المللی
استاندارداستاندارد یونی‌کد
فرمت‌های رمزگذاری شدهUTF-8, UTF-16, GB18030
Less common: UTF-32, BOCU , SCSU, UTF-7
پس ازISO 8859 و بسیاری دیگر

این استاندارد هماهنگ با مجموعه جهانی نویسه‌ها تألیف شده‌است و به صورت کتابی به نام 'The Unicode Standard' منتشر شده‌است. آخرین ویرایش این استاندارد شامل بیش از ۱۱۰۰۰۰ نویسه و ۱۰۰ نماد، مجموعه‌ای از نمودارهای کد برای مرجع تصویری، روش رمزگذاری و مجموعه‌ای از استاندارد رمزگذاری کاراکتر، شمارش خواص شخصیت مانند حروف بزرگ و کوچک، مجموعه‌ای از مرجع فایل‌های داده‌های کامپیوتر و تعدادی موارد مربوط مانند جزئیات نویسه، برابری یونی کد، رندر کردن، نظم و صفحه نمایش دو جهته (برای نمایش صحیح متن حاوی اسکریپت راست به چپ مانند عربی، فارسی و عبری، و اسکریپت‌های سمت چپ به راست) می‌باشد. تا تاریخ مارس ۲۰۱۹، آخرین ویرایش، یونیکد ۱۲٫۰ است.

موفقیت یونیکد در یکی کردن کد بندی نویسه‌ها سبب استفاده گسترده اش در جهانی‌سازی و بومی‌سازی نرم‌افزارها شده‌است.این استاندارد در بسیاری از فناوری‌های اخیر پیاده شده‌است از جمله: اکس ام ال، زبان برنامه‌نویسی جاوا، چارچوب دات نت مایکروسافت و سیستم عامل‌های مدرن.

یونیکد می‌تواند توسط کدبندی‌های مختلفی پیاده‌سازی شود. پرکاربردترین رمز نگاری‌ها عبارت اند از: UTF-8، و UCS-2 که دیگر اعتبار ندارد، و UTF-16.

کدبندی UTF-8 برای کدبندی‌های موجود در استاندارد اسکی تنها ۱ بایت استفاده می‌کند. کد نویسه‌های موجود در رمز نگاری اسکی، در هر دو کدبندی یکی است.این رمز نگاری حداکثر ۴ بایت برای هر نویسه استفاده می‌کند.UCS-2 برای تمام نویسه‌ها از ۲ بایت استفاده می‌کند بنابراین نمی‌تواند تمام نویسه‌های موجود در استاندارد فعلی یونیکد را کدبندی کند. UTF-16 کدبندی UCS-2 را گسترش می‌دهد و برای نویسه‌های باقی‌مانده از ۴ بایت استفاده می‌کند.

تاریخچه و توسعه

هدف یونیکد رفع محدودیت‌های موجود در کدبندی نویسه‌های قدیمی است، مانند کدبندی‌هایی که بر پایه استاندارد ISO 8859 تعریف شده‌اند، که استفاده گسترده‌ای در کشورهای مختلف پیدا کرده‌اند، ولی با یکدیگر سازگار نیستند. بسیاری از کدبندی‌های قدیمی این مشکل مشترک را دارند که امکان پردازش متن‌های دوزبانه (معمولا به وسیله نویسه‌های لاتین و نمادهای محلی) را فراهم می‌کنند، ولی پردازش بیش از دو زبان را ممکن نمی‌کنند.

نقش یونیکد در پردازش متن این است که به جای یک تصویر برای هر نویسه یک کد منحصر به فرد ارائه می‌کند. به عبارت دیگر، یونیکد یک نویسه را به صورت مجازی ارائه می‌کند و کار ساخت تصویر (شامل اندازه، شکل، قلم، یا سبک) نویسه را به عهده نرم‌افزار دیگری مانند مرورگر وب یا واژه‌پرداز می‌گذارد.

نسخه‌ها

یونیکد در کنار سازمان بین‌المللی استاندارد توسعه یافته‌است و کارنامه کاراکتری خود را تحت ISO / IEC 10646 با دیگران به اشتراک می‌گذارد: مجموعه کاراکتر جهانی. یونیکد و ISO / IEC 10646 در کنار یکدیگر و همسان هم به عنوان رمزگذاری کاراکتر عمل می‌کنند. اما استاندارد یونیکد حاوی اطلاعات بسیار بیشتری برای پیاده‌ساز است، و جزئیات بیشتری در رابطه از قبیل رمزگذاری بیتی، جمع‌بندی و رندر کاراکترها را شامل می‌شود. استاندارد یونیکد تعداد زیادی از خصوصیات کاراکترها را برمی‌شمارد، من جمله پشتیبانی از جهت نوشتن متن دوسویه است. اصطلاحات مورد استفاده این دو استاندارد از کمی تفاوت برخوردار است.

کنسرسیوم یونیکد برای اولین بار Unicode Standard را در سال ۱۹۹۱ منتشر کرد (نسخه ۱٫۰)، و از آن زمان نسخه‌های جدید را به‌طور منظم منتشر می‌کند. آخرین نسخه یونیکد استاندارد، نسخه ۱۳٫۰، در مارس ۲۰۲۰ منتشر شد و با فرمت الکترونیکی از وب سایت کنسرسیوم در دسترس است. آخرین نسخه استانداردی که به‌طور کامل در قالب کتاب منتشر شده‌است (شامل نمودارهای کد) نسخه ۵٫۰ در سال ۲۰۰۶ بود، اما از نسخه ۵.2 (2009) مشخصات اصلی استاندارد به عنوان یک شومیز چاپی در صورت تقاضا منتشر شده‌است. کل متن هر نسخه استاندارد از جمله مشخصات اصلی، ضمائم استاندارد و نمودار کد به صورت آزاد در قالب PDF در وب سایت Unicode در دسترس است.[۳]

تاکنون نسخه‌های اصلی و جزئی زیر از استاندارد یونیکد منتشر شده‌است. نسخه‌های به روز شده، که هیچ تغییری در کارنامه کارکترها را شامل نمی‌شود، با شماره سوم (به عنوان مثال "نسخه ۴٫۰٫۱") علامت گذاری می‌شوند و در جدول زیر حذف نمی‌شوند.[۴]

Unicode versions
نسخهتاریخکتابنسخه ISO/IEC 10646 متناظرScriptsکاراکترها
جمع تعدادی[tablenote ۱]نسخه‌های مهم
۱٫۰٫۰اکتبر ۱۹۹۱شابک ‎۰−۲۰۱−۵۶۷۸۸−۱ (Vol. 1)۲۴۷٬۱۶۱مجموعه اولیه شامل کارکترهای زیر است: عربی، ارمنی، بنگالی، بوپوموفو، سیریلیک، دیواناگری، گرجستانی، یونانی و کپتی، گجراتی، گرمکهی، هانگولی، عبری، هیراگانا، کانادا، کاتاکانا، لائو، لاتین، مالزیایی، اودیا، تالیم، تلوگو، تای، و تبتی.[۵]
۱٫۰٫۱ژوئن ۱۹۹۲شابک ‎۰−۲۰۱−۶۰۸۴۵−۶ (Vol. 2)۲۵۲۸٬۳۵۹مجموعه ابتدایی از CJK Unified Ideographs تعریف شد.[۶]
۱٫۱ژوئن ۱۹۹۳ISO/IEC 10646-1:1993۲۴۳۴٬۲۳۳۴٬۳۰۶ سیلاب دیگر هانگولی به مجموعه ابتدایی ۲٬۳۵۰ کارکتری اضافه شد. تبتی حذف شد.[۷]
۲٫۰ژوئیه ۱۹۹۶شابک ‎۰−۲۰۱−۴۸۳۴۵−۹ISO/IEC 10646-1:1993 plus Amendments 5, 6 and 7۲۵۳۸٬۹۵۰مجموعه اصلیسیلاب‌های هانگولی حذف شد و یک مجموعه سیلاب ۱۱٬۱۷۲ تایی در موقعیت جدید ایجاد شد. تبتی با مجوعه جدید و درمکان متفاوت دوباره اضافه شد.

. مکانیزم جایگزینی برای کاراکترها تعریف شد. صفحات ۱۵ و 16 منطقه استفاده شخصی تعیین شد.[۸]

۲٫۱مه ۱۹۹۸ISO/IEC 10646-1:1993 plus Amendments 5, 6 and 7, as well as two characters from Amendment 18۲۵۳۸٬۹۵۲نشانه یورو و Object Replacement Character اضافه شدند.[۹]
۳٫۰سپتامبر ۱۹۹۹شابک ‎۰−۲۰۱−۶۱۶۳۳−۵ISO/IEC 10646-1:2000۳۸۴۹٬۲۵۹چروگکی، گعز، خمری، مغولی، برمه ای، اوقام، خط رونی، سینهالا، سریانی، تهانا، سیلاب‌های مشترک غیربومی کانادایی and یی و همچنین الگوهای بریل نیز اضافه شدند.[۱۰]
۳٫۱مارس ۲۰۰۱ISO/IEC 10646-1:2000

ISO/IEC 10646-2:2001

۴۱۹۴٬۲۰۵دسرت، گوتیک، ایتالیایی باستانی، نمادهایی از موسیقی غربی و بیزانسی و 42711 CJK Unified Ideographs اضافه شدند.[۱۱]
۳٫۲مارس ۲۰۰۲ISO/IEC 10646-1:2000 plus Amendment 1

ISO/IEC 10646-2:2001

۴۵۹۵٬۲۲۱فیلیپینی، بوید، هاونو، تاگالوگ، و تاگبانوا اضافه شد.[۱۲]
۴٫۰آوریل ۲۰۰۳شابک ‎۰−۳۲۱−۱۸۵۷۸−۱ISO/IEC 10646:2003۵۲۹۶٬۴۴۷سیپروییت، لیمبو، B خطی، عثمانی، شاویان، تای له، اوگارتی، و شش نویسی اضافه شدند.[۱۳]
۴٫۱مارس ۲۰۰۵ISO/IEC 10646:2003 plus Amendment 1۵۹۹۷٬۷۲۰بوگینیز، گلاگولیتی، خروشتی، تای لو، فارسی باستانی، سیلهتی، و تیفیناگ اضافه شدند. کپتی از یونانی جداشد. اعداد و نشانه‌های موسیقایی یونان باستان نیز اضافه شدند.[۱۴]
۵٫۰ژوئیه ۲۰۰۶شابک ‎۰−۳۲۱−۴۸۰۹۱−۰ISO/IEC 10646:2003 plus Amendments 1 and 2, as well as four characters from Amendment 3۶۴۹۹٬۰۸۹بالیایی، خط میخی، انکو، پاسپا، و فینیقی اضافه شد.[۱۵]
۵٫۱آوریل ۲۰۰۸ISO/IEC 10646:2003 plus Amendments 1, 2, 3 and 4۷۵۱۰۰٬۷۱۳کاریان، چام، کایا لی، لپ چا، لیسی، لیدی، اولچیکی، رجنگ، شوراشترا، ساندانی، وای، و همچنین نشانه‌هایی از صفحه فستوس، ماژونگ، دومینو اضافه شد.

به علاوه اضافاتی از برمه ای، اختصارات کتابی، و نسخ خطی میانه، و حرف بزرگ ẞ رانیز دربرداشت.[۱۶]

۵٫۲اکتبر ۲۰۰۹شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۰۰−۹ISO/IEC 10646:2003 plus Amendments 1, 2, 3, 4, 5 and 6۹۰۱۰۷٬۳۶۱اوستایی، باموم، هیروگلیف مصری (در مجموعه نشانه‌های گاردینر ۱۰۷۱ کاراکتر وجود دارد)، آرامی پادشاهی، پهلوی نوشتاری، پارتی نوشتاری، جاوه ای، کایتی، فراسر، میتئی، عربستانی جنوبی باستانی، ترکی باستانی (اورخون)، سامری، تای تام، تای ویت اضافه شد. همچنین 4149 CJK Unified Ideographs به همراه توسعه جامو برای هانگولی و کاراکترهای وردیکت نیز اضافه شدند.[۱۷]
۶٫۰اکتبر ۲۰۱۰شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۰۱−۶ISO/IEC 10646:2010 plus the Indian rupee sign۹۳۱۰۹٬۴۴۹بتک، براهمی، ماندایی، علائم راهنمایی و رانندگی، نقشه، نشانه‌های شیمیایی، شکلک‌ها، و 222 CJK Unified Ideographs اضافه شد.[۱۸]
۶٫۱ژانویه ۲۰۱۲شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۰۲−۳ISO/IEC 10646:2012۱۰۰۱۱۰٬۱۸۱چامکا، مروئیت، پولارد، شارادا، سرنگ سمپن، و تکری اضافه شدند.[۱۹]
۶٫۲سپتامبر ۲۰۱۲شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۰۷−۸ISO/IEC 10646:2012 plus the Turkish lira sign۱۰۰۱۱۰٬۱۸۲نشان لیره ترکیه اضافه شد.[۲۰]
۶٫۳سپتامبر ۲۰۱۳شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۰۸−۵ISO/IEC 10646:2012 plus six characters۱۰۰۱۱۰٬۱۸۷۵ کاراکتر برای متن دوسویه اضافه شد.[۲۱]
۷٫۰ژوئن ۲۰۱۴شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۰۹−۲ISO/IEC 10646:2012 plus Amendments 1 and 2, as well as the Ruble sign۱۲۳۱۱۳٬۰۲۱باسا، آلابانیای قفقاز، دوپلویان، الباسان، گرانتا، خوجکی، خودابادی،

خطی آ، ماهاجانی، مانوی، منده کیکاکویی، مودی، مرو، نبطی، عربی شمالی باستانی، پرمیک باستانی، پاهاو، تدمیری، پو چین هاو، پهلوی نیایشی، سیدام، تیرهوتا، وارانگ، نشان گذارهای پارگرافی.[۲۲]

۸٫۰ژوئن ۲۰۱۵شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۱۰−۸ISO/IEC 10646:2014 plus Amendment 1, as well as the Lari sign, nine CJK unified ideographs, and 41 emoji characters[۲۳]۱۲۹۱۲۰٬۷۳۷آهوم، آناتولی، هاتران، مولتانی، لهستانی باستانی، زبان اشاره، چروکی نشانه ای، 5771 CJK Unified Ideographs دیگر، و مجموعه کوچک نویسی چروگکی و پنج نشانه مقیاس فیتزپاتریک.[۲۴]
۹٫۰ژوئن ۲۰۱۶شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۱۳−۹ISO/IEC 10646:2014 plus Amendments 1 and 2, as well as Adlam, Newa, Japanese TV symbols, and 74 emoji and symbols[۲۵]۱۳۵۱۲۸٬۲۳۷آدلام، بایکسوکی، ژانگ ژانگ، پراکال، اوساژ، تانگوت، ایموجی.[۲۶][۲۷]
۱۰٫۰ژوئن ۲۰۱۷شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۱۶−۰ISO/IEC 10646:2017 plus 56 emoji characters, 285 hentaigana characters, and 3 Zanabazar Square characters[۲۸]۱۳۹۱۳۶٬۷۵۵زانابازار، سویومبو، ماسارام گوندی، نوشو، هنتایگانا، هیراگانا، 7494 CJK Unified Ideographs دیگر، و ایموجی
۱۱٫۰ژوئن ۲۰۱۸شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۱۹−۱ISO/IEC 10646:2017 plus Amendment 1, as well as 46 Mtavruli Georgian capital letters, 5 CJK unified ideographs, and 66 emoji characters.[۲۹]۱۴۶۱۳۷٬۴۳۹دوگری، خدرولی، گونجالا، حنیفی، ایندی، ماکاسارس، مدفدری، سغدی، مایا، 5 CJK Unified Ideographs با اولویت بالا، نشانه‌های شطرنج چینی، نشنه پنج ستاره، و ۱۴۶ ایموجی دیگر[۳۰]
۱۲٫۰مارس ۲۰۱۹شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۲۲−۱ISO/IEC 10646:2017 plus Amendments 1 and 2, as well as 62 additional characters.[۳۱]۱۵۰۱۳۷٬۹۹۳الیمایی، ناندیناگاری، نیاکنگ، وانچو، پولارد اضافاتی برای علامت‌های زبان یی و میائو چینی، حروف کوچکژاپنی هیراگانا و کاتاکانا، نشانه‌ها و شاخه‌های تاریخی تامیل، حروف لائو برای پالی، حروف لاتین برای حرف نوشتار مصری و اوگاریتیک، نشانه ای هیروگلیف، و ۱۶۱ ایموجی[۳۲]
۱۲٫۱مه ۲۰۱۹شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۲۵−۲۱۵۰۱۳۷٬۹۹۴افزودن یک کارکتر در U+32FF برای شکل مربع اسم ریوا.[۳۳]
۱۳٫۰مارس ۲۰۲۰شابک ‎۹۷۸−۱−۹۳۶۲۱۳−۲۶−۹ISO/IEC 10646:2020[۳۴]۱۵۴۱۴۳٬۹۲۴زبان خوارزمی، دیوی، خیطان، کوردی یزیدی، اضافات سری G CJK Unified Ideographs، اضافات زبان عربی برای زبان هوسه و زبان ولوف و دیگر زبانهای آفریقایی و نوشتار زبان هندکو و زبان پنجابی در پاکستان، بوپوموفو، و اضافتی برای کانوتی، نشانه‌های مدرک خلاقیت عمومی، کاراکترهای گرافیکی برای تلتکست و سیستم‌های رایانه ای دهه‌های ۷۰ و ۸۰، و همچنین ۵۵ ایموجی.[۳۵]

یونیکد در ویندوز

در ویندوز ای‌پی‌آی توابع یونیکد با پسوند W می‌آیند. (مثال: CreateWindowExW) پسوند W حرف اول عبارت wide character است که در زبان‌های برنامه‌نویسی انواع داده‌ای که یونیکد را پشتیبانی می‌کنند اسامی مشابهی مانند WCHAR دارند و گاهی به آن نویسهٔ چندبایتی (به انگلیسی: multibyte character) نیز گفته می‌شود.

جستارهای وابسته

پیوند به بیرون

پانویس

منابع

  • «یونی‌کد چیست؟». ترجمهٔ روزبه پورنادر. کنسرسیوم یونی‌کد. دریافت‌شده در ۱۰ ژوئیهٔ ۲۰۰۹.
  • مشارکت‌کنندگان ویکی‌پدیا. «Unicode». در دانشنامهٔ ویکی‌پدیای انگلیسی، بازبینی‌شده در ۱۱ ژوئن ۲۰۰۹.
🔥 Top keywords: