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