موقعیت کد
در اصطلاح کدبندی نویسه، یک موقعیت کد (به انگلیسی: code position) یا کد پوینت (به انگلیسی: Code point) یا شماره منحصر به فرد یک مقدار عددی است که فضای کد را تشکیل میدهد. بسیاری از شمارههای منحصر به فرد، یک نویسه (کاراکتر) را نشان میدهند اما آنها میتوانند معانی دیگری هم داشته باشند، مثلاً برای قالببندی.
به عنوان مثال، طرح رمزگذاری اسکی شامل ۱۲۸ شماره منحصر به فرد در محدوده 0hex تا 7Fhex، گسترشیافتهاست که شامل ۲۵۶ شماره منحصر به فرد در دامنه 0hex تا FFhex است، و یونیکد شامل شمارههای منحصر به فرد ۱٬۱۱۴٬۱۱۲ در دامنه 0hex تا 10FFFFhex است. فضای کد یونیکد به هفده صفحهٔ یونیکد (صفحه پایه چندزبانه، و ۱۶ صفحه مکمل) تقسیم شدهاست، که هر کدام دارای ۶۵٬۵۳۶ (= ۲) شماره کد هستند؛ بنابراین اندازه کلی فضای کد یونیکد ۱۷ * ۶۵٬۵۳۶ = ۱٬۱۱۴٬۱۱۲ است.
تعریف
مفهوم قالب یونیکد برای انتزاع و برای تمایز هر دو استفاده میشود:
صفحه | موقعیت کد | نویسه نسبتداده شده |
---|---|---|
0 BMP | ۶۵٬۴۷۲ | ۵۵٬۴۱۱ |
1 SMP | ۲۲٬۹۲۸ | ۲۰٬۸۳۲ |
2 SIP | ۶۰٬۹۱۲ | ۶۰٬۸۵۹ |
14 SSP | ۳۶۸ | ۳۳۷ |
15 SPUA-A | ۶۵٬۵۳۶ | |
16 SPUA-B | ۶۵٬۵۳۶ | |
کل | ۲۸۰٬۷۵۲ | ۱۳۷٬۴۳۹ |
این به این دلیل است که ممکن است کسی بخواهد این تمایزات را به وجود آورد:
- برای کدگذاری یک فضای کد خاص به روشهای مختلف، یا
- یک نویسه را از طریق گلیفهای متفاوت نشان دهد.
مفهوم موقعیت کد بخشی از راهحل یونیکد برای یک معمای دشواری است که سازندگان کدگذاری نویسه در دهه ۱۹۸۰ با آن مواجه بودند. اگر آنها برای نمایش هر نویسه بیتهای بیشتری اختصاص میدادند باعث میشد که حجم زیادی از منابع محاسباتی کامپیوتر برای کاربران خط لاتین (که اکثریت وسیعی از کاربران کامپیوتر را در آن زمان تشکیل میدادند) را برای بار اضافی غیرقابل قبولی استفاده شود که برای کاربران لاتین کاربردی نداشت. موقعیت کد، ایده قدیمی تناظر یک به یک بین کاراکترها و توالی بیتها را از بین برد.