Кодовая страница

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Кодовая страница CP866

Кодовая страница (англ. code page) — это компьютерная кодировка символов, в которой каждый символ кодируется одним байтом. Байт, как правило, состоит из 8 битов, поэтому кодовая страница содержит не более 256 символов, чем обусловлена невозможность представления многоязычных текстов посредством какой-либо одной 8-битной кодовой страницы. Кроме того, часть символов используется как управляющие, из-за чего число печатных символов в кодовой странице редко превышает 223[a].

Исторически термин code page был введён корпорацией IBM; сменные кодовые страницы использовались для поддержки различных языков с алфавитными системами письма. В последнее время наблюдается путаница между термином «кодовая страница» и более общими понятиями набора и кодировки символов.

Кодовые страницы сегодня

[править | править код]

В настоящее время в основном используются кодовые страницы двух типов: совместимые с ASCII и совместимые с EBCDIC[b], с подавляющим преобладанием первых. В ASCII-совместимых кодовых страницах (так называемом расширенном ASCII[англ.]) нижняя половина кодовой таблицы (128 позиций 0x000x7F), как правило, полностью совпадает с ASCII, а верхняя половина (128 позиций 0x800xFF) используется для различных символов, не входящих в ASCII.

Для кодирования текстов на русском языке (то есть букв кириллицы) наиболее широко применяются следующие кодовые страницы:

Использование различных кодовых страниц создаёт много неудобств как для пользователей, так и для программистов. Например, при попытке прочесть текстовый файл, используя кодовую страницу, несовместимую с той, в которой он был создан, получается нечитаемый текст (так называемые кракозябры[англ.]). В последние годы широкое распространение получил Юникод как альтернатива традиционным кодовым страницам.

В системе Microsoft Windows

[править | править код]

В системах Microsoft Windows кодовые страницы являются важным компонентом локализации и определяются в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage[1].

Исторически (в системах Windows 3.x и Windows 9x) имелось два типа кодовых страниц:

  • Кодовые страницы ANSI[2] (англ. ANSI code page, ключ реестра: ACP[c]), также называемые Windows[3] — «родные» кодовые страницы Windows. Содержат много символов типографики, но почти не содержат псевдографику по причине того, что предназначены для использования в графическом окружении. Впоследствии корпорация Microsoft признала, что название ANSI было использовано по недоразумению[4]. К кодовым страницам ANSI относят, в частности, Windows-1252 и вышеупомянутую Windows-1251. Также к данному типу относят кодировки, некоторые кодовые позиции которых требуют второй (завершающий) байт для формирования символа, то есть использующие двухбайтовое представление некоторых символов[5], хотя они, строго говоря, являются кодировками с переменной длиной символа.
  • Кодовые страницы OEM (англ. OEM code page, ключ реестра: OEMCP[c]) основаны на CP437 и содержат VGA-совместимую псевдографику. К кодовым страницам OEM относят, в частности, CP866 — используемый в Windows вариант вышеупомянутой альтернативной кодировки.

Начиная с Windows NT появился третий тип кодовых страниц — Macintosh (англ. Macintosh code page, ключ реестра: MACCP[c]), совместимые с системой MacOS.

Примечания

[править | править код]

Комментарии

[править | править код]
  1. Одним из немногих исключений является кодировка VISCII[англ.] для вьетнамской латиницы, совместимая с ASCII за вычетом шести управляющих символов, заменённых на буквы (см. RFC 1456), и содержащая, таким образом, 229 печатных символов.
  2. Кодировки на базе EBCDIC (например, ДКОИ) используются только на некоторых мэйнфреймах.
  3. 1 2 3 Ключ, расположенный в вышеупомянутой ветви реестра и определяющий, какая из кодовых страниц данного типа используется системой.
  1. REG: CurrentControlSet, PART 1 (англ.). Дата обращения: 2 марта 2010. Архивировано из оригинала 17 июня 2014 года.
  2. Code Pages (англ.). Дата обращения: 2 марта 2010. Архивировано 20 мая 2016 года.
  3. Code Pages (англ.). Дата обращения: 2 марта 2010. Архивировано из оригинала 7 марта 2016 года.
  4. MSDN Glossary of Terms (англ.). Дата обращения: 2 марта 2010. Архивировано из оригинала 8 декабря 2018 года.
  5. Code Pages Supported by Windows (англ.). Дата обращения: 2 марта 2010. Архивировано из оригинала 22 июля 2016 года.