Ко́дова сторі́нка (англ. code page) — таблиця, що зіставляє кожному значенню байта деякий символ (або його відсутність). Зазвичай код символу має розмір 8 біт, так що кодова сторінка може містити максимум 256 символів, з чого випливає різка недостатність всякої 8-бітної кодової сторінки для подання багатомовних текстів. До того ж частина символів використовується як керуюча, через що число друкованих символів рідко перевищує 223.
Історично термін code page був введений корпорацією IBM; змінні кодові сторінки використовувалися для підтримки різних мов (що мають алфавітні системи письма). Останнім часом є плутанина між терміном «кодова сторінка» і більш загальним поняттям набору символів (кодування).
Кодові сторінки сьогодні
В даний час в основному використовуються кодування двох типів: сумісні з ASCII і сумісні з EBCDIC, з переважанням перших. В ASCII-сумісних кодуваннях зафіксовано коди 95 друкованих символів та 33 керуючих («нижня» половина кодів, від 0 до 127), а решта 128 кодових позицій (від 128 до 255) використовуються для різних символів, що не входять в ASCII.
Для кодування текстів українською (російською) мовою (тобто букв кирилиці) найбільш широко застосовуються наступні кодові сторінки:
- Windows-1251, вона ж Microsoft code page 1251 (CP1251) — в системах Windows;
- Сімейство кодових сторінок KOI-8;
- Альтернативне кодування, воно ж IBM code page 866 — в системах DOS, а також у текстових вікнах Microsoft Windows (див. нижче);
- MacCyrillic — на комп'ютерах Macintosh.
Використання різних кодових сторінок створює багато незручностей як для користувачів, так і для програмістів. При спробі прочитати текстовий файл за допомогою кодової сторінки, несумісною з тією, в якій він був створений, виникають кракозябри. В останні роки отримав широке розповсюдження Unicode як альтернатива традиційним кодовим сторінкам.
У системі Microsoft Windows
У системах Microsoft Windows кодові сторінки є важливим компонентом локалізації, що задається в ключах реєстру HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\
[1].
Історично (у системах Windows 3.x і Windows 9x) було два типи кодових сторінок. Кодові сторінки «ANSI»[2] (англ. ANSI code page, в реєстрі: ACP), також звані Windows[3] — рідні кодові сторінки Windows. Містять багато символів типографіки, але майже не містять псевдографіку по причині того, що призначені для використання в графічному оточенні. Згодом корпорація Microsoft визнала, що використання імені ANSI було викликано непорозумінням. До Кодування «ANSI» / Windows відносять, зокрема, Windows-1252 і вищезгадану Windows-1251. Microsoft також відносить до кодових сторінок кодові таблиці, деякі позиції яких вимагають другого (завершального) байта для формування символу, тобто допускають двобайтове уявлення деяких символів, хоча вони, щиро кажучи, є вже кодуваннями із змінною довжиною символу.
Кодування OEM (англ. OEM code page, в реєстрі: OEMCP) засновані на CP437 і містять VGA-сумісну псевдографіку. Вищезазначене альтернативне кодування відоме у Windows як CP866.
Починаючи з Windows NT з'явився третій клас кодових сторінок: кодування Macintosh (англ. Macintosh code page, в реєстрі: MACCP), сумісних з Mac OS.
Див. також
Примітки