پرش به محتوا

موقعیت کد

از ویکی‌پدیا، دانشنامهٔ آزاد

در اصطلاح کدبندی نویسه، یک موقعیت کد (به انگلیسی: code position) یا کد پوینت (به انگلیسی: Code point) یا شماره منحصر به فرد یک مقدار عددی است که فضای کد را تشکیل می‌دهد. بسیاری از شماره‌های منحصر به فرد، یک نویسه (کاراکتر) را نشان می‌دهند اما آن‌ها می‌توانند معانی دیگری هم داشته باشند، مثلاً برای قالب‌بندی.

به عنوان مثال، طرح رمزگذاری اسکی شامل ۱۲۸ شماره منحصر به فرد در محدوده 0hex تا 7Fhex، گسترش‌یافته‌است که شامل ۲۵۶ شماره منحصر به فرد در دامنه 0hex تا FFhex است، و یونی‌کد شامل شماره‌های منحصر به فرد ۱٬۱۱۴٬۱۱۲ در دامنه 0hex تا 10FFFFhex است. فضای کد یونی‌کد به هفده صفحهٔ یونیکد (صفحه پایه چندزبانه، و ۱۶ صفحه مکمل) تقسیم شده‌است، که هر کدام دارای ۶۵٬۵۳۶ (= ۲۱۶) شماره کد هستند؛ بنابراین اندازه کلی فضای کد یونی‌کد ۱۷ * ۶۵٬۵۳۶ = ۱٬۱۱۴٬۱۱۲ است.

تعریف

[ویرایش]

مفهوم قالب یونی‌کد برای انتزاع و برای تمایز هر دو استفاده می‌شود:

  • شماره از رمزگذاری به عنوان دنباله‌ای از بیت‌ها، و
  • شخصیت انتزاعی از یک نمایش گرافیکی خاص (گلیف).
موقعیت کدهای یونیکد نسخهٔ ۱۱٫۰
صفحه موقعیت کد[۱] نویسه نسبت‌داده شده[۲]
0 BMP ۶۵٬۴۷۲ ۵۵٬۴۱۱
1 SMP ۲۲٬۹۲۸ ۲۰٬۸۳۲
2 SIP ۶۰٬۹۱۲ ۶۰٬۸۵۹
14 SSP ۳۶۸ ۳۳۷
15 SPUA-A ۶۵٬۵۳۶
16 SPUA-B ۶۵٬۵۳۶
کل ۲۸۰٬۷۵۲ ۱۳۷٬۴۳۹

این به این دلیل است که ممکن است کسی بخواهد این تمایزات را به وجود آورد:

  • برای کدگذاری یک فضای کد خاص به روش‌های مختلف، یا
  • یک نویسه را از طریق گلیف‌های متفاوت نشان دهد.

مفهوم موقعیت کد بخشی از راه‌حل یونیکد برای یک معمای دشواری است که سازندگان کدگذاری نویسه در دهه ۱۹۸۰ با آن مواجه بودند. اگر آن‌ها برای نمایش هر نویسه بیت‌های بیشتری اختصاص می‌دادند باعث می‌شد که حجم زیادی از منابع محاسباتی کامپیوتر برای کاربران خط لاتین (که اکثریت وسیعی از کاربران کامپیوتر را در آن زمان تشکیل می‌دادند) را برای بار اضافی غیرقابل قبولی استفاده شود که برای کاربران لاتین کاربردی نداشت. موقعیت کد، ایده قدیمی تناظر یک به یک بین کاراکترها و توالی بیت‌ها را از بین برد.

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

[ویرایش]

منابع

[ویرایش]
  1. Code points which have been allocated to a Unicode block.
  2. The total number of graphic, format and control characters (i.e. , excluding private-use characters, noncharacters and surrogate code points).