Кодовая страница
Кодовая страница (англ. code page) — это компьютерная кодировка символов, в которой каждый символ кодируется одним байтом. Байт, как правило, состоит из 8 битов, поэтому кодовая страница содержит не более 256 символов, чем обусловлена невозможность представления многоязычных текстов посредством какой-либо одной 8-битной кодовой страницы. Кроме того, часть символов используется как управляющие, из-за чего число печатных символов в кодовой странице редко превышает 223[a].
Исторически термин code page был введён корпорацией IBM; сменные кодовые страницы использовались для поддержки различных языков с алфавитными системами письма. В последнее время наблюдается путаница между термином «кодовая страница» и более общими понятиями набора и кодировки символов.
Кодовые страницы сегодня
[править | править код]В настоящее время в основном используются кодовые страницы двух типов: совместимые с ASCII и совместимые с EBCDIC[b], с подавляющим преобладанием первых.
В ASCII-совместимых кодовых страницах (так называемом расширенном ASCII[англ.]) нижняя половина кодовой таблицы (128 позиций 0x00
—0x7F
), как правило, полностью совпадает с ASCII, а верхняя половина (128 позиций 0x80
—0xFF
) используется для различных символов, не входящих в ASCII.
Для кодирования текстов на русском языке (то есть букв кириллицы) наиболее широко применяются следующие кодовые страницы:
- Windows-1251 — в операционных системах Windows;
- Варианты альтернативной кодировки — в операционных системах DOS, а также в консоли Windows (см. ниже);
- Семейство кодировок КОИ-8 — в Unix-подобных операционных системах (при ручной настройке пользователем);
- MacCyrillic — на компьютерах Macintosh.
Использование различных кодовых страниц создаёт много неудобств как для пользователей, так и для программистов. Например, при попытке прочесть текстовый файл, используя кодовую страницу, несовместимую с той, в которой он был создан, получается нечитаемый текст (так называемые кракозябры[англ.]). В последние годы широкое распространение получил Юникод как альтернатива традиционным кодовым страницам.
В системе 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.
Примечания
[править | править код]Комментарии
[править | править код]- ↑ Одним из немногих исключений является кодировка VISCII[англ.] для вьетнамской латиницы, совместимая с ASCII за вычетом шести управляющих символов, заменённых на буквы (см. RFC 1456), и содержащая, таким образом, 229 печатных символов.
- ↑ Кодировки на базе EBCDIC (например, ДКОИ) используются только на некоторых мэйнфреймах.
- ↑ 1 2 3 Ключ, расположенный в вышеупомянутой ветви реестра и определяющий, какая из кодовых страниц данного типа используется системой.
Источники
[править | править код]- ↑ REG: CurrentControlSet, PART 1 (англ.). Дата обращения: 2 марта 2010. Архивировано из оригинала 17 июня 2014 года.
- ↑ Code Pages (англ.). Дата обращения: 2 марта 2010. Архивировано 20 мая 2016 года.
- ↑ Code Pages (англ.). Дата обращения: 2 марта 2010. Архивировано из оригинала 7 марта 2016 года.
- ↑ MSDN Glossary of Terms (англ.). Дата обращения: 2 марта 2010. Архивировано из оригинала 8 декабря 2018 года.
- ↑ Code Pages Supported by Windows (англ.). Дата обращения: 2 марта 2010. Архивировано из оригинала 22 июля 2016 года.