Циклопедия скорбит по жертвам террористического акта в Крокус-Сити (Красногорск, МО)

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

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Кодовые страницы — подход к цифровым кодировкам символов, практиковавшийся во второй половине XX века, первоначально, в связи с невозможностью обработки большого количества разных символов программным обеспечением и аппаратными ограничениями.

Сам термин (от англ. code page; часто записывается слитно как codepage), по-видимому, возник в ходе использования руководства фирмы IBM по наборам символов (IBM standard character set manual), в котором различные локализованные наборы описывались на бумажных пронумерованных страницах, англ. pages.

Первые кодовые страницы IBM были основаны на EBCDIC. В XXI веке большинство используемых кодовых страниц совместимо с ASCII.

Номенклатура и стандартизация[править]

В отличие от кодировок символов вообще, которым присваиваются имена (нередко включающие числовые обозначения), поставщики компьютерной техники присваивают кодовым страницам номера, что приводит к обозначениям типа code page nnn (или, сокращённо, CPnnn).

В каталоге от IBM соответствие между (меняющимися от издания к издания) номерами страниц и (постоянными) номерами кодовых страниц было утрачено. Microsoft первоначально использовала IBM’овские номера, однако страницы от IBM и от Microsoft не совпадают в точности. Поддержание совместимости прекратилась в результате враждебных отношений между двумя корпорациями в 1990-х годах. Стандартное обозначение кодовых страниц от Microsoft включает слово «Windows-».

Фирма Oracle поддерживала свой, отдельный каталог кодовых страниц.

Фирма Hewlett Packard также использовала номерные наборы символов, идентичные описанным выше или похожие на них, но фирменная терминология отличалась от таковой от IBM и Microsoft и словосочетание «кодовая страница» в документации HP не фигурировало.

Хотя номенклатура кодовых страниц возникла из потребностей корпораций, некоторые количество модифицированных кодовых страниц (обычно, не имеющих стандартного номера) было создано регулирующими органами или даже общественными организациями. Так, модификация страницы Windows-1251 под нужды казахского языка является государственным стандартом Казахстана 1048-2002 и имеет регистрацию в Интернете как KZ-1048[1]</ref>. Аналогичная доработка для татарского языка была стандартизована постановлением кабинета министров Татарстана ещё раньше, в 1996 году.[2]

Интернет-организация IANA «узаконила» большинство документированных кодовых страниц в ходе «регистрации» (то есть, стандартизации) кодировок текста вообще.

Использование в системах DOS[править]

В операционных системах DOS поддержка кодовых страниц начиная с версий PC DOS 3.3 и MS-DOS 3.3. По причинам аппаратной совместимости кодовые страницы, характерные для DOS, основаны на наборе символов (известном как CP437), прошитом в ПЗУ большинства PC-совместимых видеоадаптеров.

Использование в Microsoft Windows[править]

В системах Microsoft Windows кодовые страницы используются начиная с Windows 3.1 и продолжали являться важным элементом локализации даже при использовании ядра NT (имеющего 16-битный Юникод в качестве внутренней кодировки) из-за необходимости поддерживать традиционный, 8-битный API. Информацию о кодовых страницах можно найти в реестре в разделе «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\». Конкретно, ключ «ACP» указывает на кодовую страницу для API Windows (такую, как 1251 или 1252), «OEMCP» указывает на кодовую страницу для text mode (обычно, DOS-совместимую[⇨]), а ключи, именованные десятичными номерами страниц, называют системный файл с описанием кодовой страницы.

В позднейших Windows понятие «кодовой страницы» расширилось до произвольной кодировки текста и в программные средства перекодировки в качестве Code Page стало возможно подставить практически любую кодировку, даже UTF-16 (под номерами 1200 и 1201[3]) и UTF-8 (под номером 65001), хотя по неясным причинам разработчики Windows до 2017 года препятствовали использованию UTF-8 в качестве кодировки по умолчанию для локали.

См. также[править]

Источники[править]

Ссылки[править]

Кодировки символов
Основы Алфавиттекстнабор символовконверсия
Исторические кодировки Докомп.: семафорная (Макарова)МорзеБодоМТК-2
Комп.: 6-битнаяУППRADIX-50EBCDICДКОИ-8 ) • КОИ-7ISO 646
современное
8-битное
представление
символы ASCIIуправляющиепечатные )
8-битные код.стр. ISO 8859 • кириллица (КОИ-8ГОСТ 19768-87MacCyrillic)
Windows 12501251 (кир.)1252125312541255125612571258WGL4
IBM & DOS 437850852855866 «альт.»МИКНИИ ЭВМ
Многобайтные Традиционные DBCSGB 2312 ) • HTML
Unicode UTFсписок символов (кириллица • латиница)
Связанные темы интерфейс пользователяраскладка клавиатурылокальперевод строкикракозябрытранслитнестандартные шрифты