stringtranslate.com

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

Кодовая страница 437 ( CCSID 437) — это набор символов исходного IBM PC (персонального компьютера). [2] Он также известен как CP437, OEM-US, OEM 437, [3] PC-8, [4] или DOS Latin US. [5] В комплект входят все печатные символы ASCII , а также некоторые диакритические буквы , греческие буквы, значки и символы для рисования линий. Его иногда называют «шрифтом OEM», «высоким ASCII» или « расширенным ASCII » [4] (одно из многих взаимно несовместимых расширений ASCII).

Этот набор символов остается основным набором в ядре любой видеокарты, совместимой с EGA и VGA . Таким образом, текст, отображаемый при перезагрузке ПК, прежде чем можно будет загрузить и отобразить шрифты, обычно отображается с использованием этого набора символов. [примечание 1] Многие форматы файлов, разработанные во времена IBM PC, также основаны на кодовой странице 437.

Видеоадаптеры

Исходный IBM PC содержал этот шрифт в виде шрифта с разрешением 9×14 пикселей на символ, хранившегося в ПЗУ адаптера монохромного дисплея IBM (MDA), и шрифта с разрешением 8×8 пикселей на символ адаптера цветной графики ( CGA ). карты. [ нужна цитация ] Адаптер расширенной графики IBM (EGA) содержал версию с разрешением 8×14 пикселей на символ, а VGA содержал версию 9×16. [ нужна цитата ]

Все эти видеоадаптеры имеют текстовые режимы, в которых каждая ячейка символа содержит 8-битный код символа (см. подробности ), что дает 256 возможных значений графических символов. Всем 256 кодам были присвоены графические символы в ПЗУ, включая коды от 0 до 31, которые были зарезервированы в ASCII для неграфических управляющих символов.

Различные восточноевропейские ПК использовали разные наборы символов, иногда выбираемые пользователем с помощью перемычек или настроек CMOS. Эти наборы были разработаны так, чтобы максимально соответствовать 437, например, используя общие кодовые точки для многих символов рисования линий, но при этом позволяя отображать текст на местном языке.

Альтернативные коды

Наследием кодовой страницы 437 являются комбинации чисел, используемые в альтернативных кодах Windows . [6] [7] [8] Пользователь DOS мог ввести символ, удерживая клавишу Alt и введя код символа на цифровой клавиатуре [6] , и многие пользователи запомнили цифры, необходимые для CP437 (или для аналогичного CP850 ). Хотя Microsoft Windows использовала разные наборы символов, такие как CP1252 , исходные номера были эмулированы, чтобы пользователи могли продолжать их использовать; Microsoft добавила возможность вводить код из набора символов Windows, вводя 0 перед цифрами. [6] [9]

Набор символов

В следующих таблицах показана кодовая страница 437. Каждый символ отображается с эквивалентной кодовой точкой Юникода (если она не равна коду символа). Всплывающая подсказка , обычно доступная только при наведении курсора непосредственно слева от символа, показывает имя кодовой точки Юникода и десятичный код Alt . См. также примечания ниже, поскольку для некоторых кодовых точек существует несколько эквивалентных символов Юникода.

Хотя ПЗУ предоставляет графику для всех 256 различных возможных 8-битных кодов, некоторые API не будут печатать некоторые кодовые точки, в частности диапазон 0–31 и код 127. [10] Вместо этого они будут интерпретировать их как управляющие символы. . Например, многие методы вывода текста на исходном IBM PC интерпретировали шестнадцатеричные коды 07, 08, 0A и 0D как BEL , BS , CR и LF соответственно. Многие принтеры также не смогли напечатать эти символы.

  Символы и пунктуация

При переводе в Юникод некоторые коды не имеют уникального единственного эквивалента в Юникоде; правильный выбор может зависеть от контекста.

  1. ^ 0 рисует пробел, но использование в качестве признака завершения строки C означает, что он более точно переводится как NUL.
  2. ^ В системе идентификаторов символов GCGID IBM это SM910000, что просто обозначается как «Две музыкальные ноты»; [12] [13] однако эталонный символ показывает два лучевых полуквавера [U+266C, ♬]. [12] Показанное сопоставление с лучевыми дрожаниями [U+266B, ♫] соответствует данным, предоставленным Консорциумом Unicode . [15] В спецификации японского хост-кода IBM SM910080 (т. е. SM910000 с установленным атрибутом полной ширины ) явно отображается в U+266C и также показывает два полуквавера. [16]
  3. ^ 124 (7C hex ) Фактический глиф в этой позиции представляет собой пунктирную полосу [U+00A6, ¦] в исходном шрифте IBM PC и совместимом шрифте, отображаемом исходным MDA . Позднее этот рендеринг был принят для CGA , EGA и VGA (см. изображение в начале статьи). Однако почти все программное обеспечение предполагает, что этот код представляет собой символ ASCII [U+007C, |]; например, в языках программирования это используется как «или». В начале 1990-х годов выяснилось [ кем? ] что в этой позиции есть вертикальная черта в ASCII и что символ прерывистой черты не является частью ASCII.
  4. ^ 127 (шестнадцатеричный 7F ) — это «дом», но также иногда использовался как дельта греческой столицы [U + 0394, Δ].
  5. ^ Также может служить встроенным расширением [U + 23AE, ⎮] шрифта IBM.
  6. ^
    Сравнение символов в диапазоне от E0 до EF в различных продуктах IBM.
    225 ( шестнадцатеричный E1 ) идентифицируется IBM как латинское « Sharp s Small» [13] [U+00DF, ß], но иногда отображается в OEM-шрифтах как греческая маленькая бета [U+03B2, β]. Расположение этого латинского символа среди греческих символов предполагает его многократное использование.
  7. ^ 227 ( шестнадцатеричный E3 ) идентифицируется IBM как греческое « Pi Small» [U+03C0, π], но иногда отображается в OEM-шрифтах как греческая заглавная «пи» [U+03A0, Π] или n -арный знак продукта [U +220F, ∏].
  8. ^ 228 ( шестнадцатеричный E4 ) идентифицируется IBM как греческий « Sigma Capital» [U+03A3, Σ], но также используется как n-арный знак суммирования [U+2211, ∑].
  9. ^ 230 ( шестнадцатеричный E6 ) идентифицируется IBM как греческое « Mu Small» [U+03BC, μ], но также используется как микрознак [ U+00B5, µ]. В Unicode греческая таблица GCGID IBM [17] сопоставляет символ этой кодовой страницы с греческой буквой, но Python , например, сопоставляет его с микрознаком.
  10. ^ 233 ( шестнадцатеричный E9 ) идентифицируется IBM как греческий « Theta Capital» [U + 0398, Θ]. [12] [13] Однако эти символы предназначены для математики и физики, в которых гораздо чаще используется строчная тета (например, для полярных координат).
  11. ^ 234 (EA hex ) идентифицируется IBM как греческий « Omega Capital» [U+03A9, Ω], но также используется как знак Ома [U+2126, Ω]. Unicode считает символы эквивалентными и предлагает использовать U+03A9 в обоих контекстах. [18]
  12. ^ 235 (EB hex ) идентифицируется IBM как греческое « Delta Small» [U+03B4, δ]. Он также неофициально использовался для обозначения маленького eth [U+00F0, ð] и знака частной производной [U+2202, ∂].
  13. ^ 237 (ED hex ) идентифицируется IBM как греческое « Phi Small (Закрытая форма)» [U+03D5, φ; или, из математического набора, выделенного курсивом, U+1D719, 𝜙], но в некоторых кодеках (например, в библиотеке кодеков Python [19] ) отображается в Unicode как открытая (или «зацикленная») форма [U+03C6, φ]. Сравнение греческой таблицы GCGID IBM [17] с диаграммой греческого кода Unicode [20] показывает, где IBM, например, поменяла местами открытую и закрытую формы при преобразовании в Unicode. Этот символ также используется как знак пустого набора [U+2205, ∅], знак диаметра [U+2300, ⌀] и латинская буква O со штрихом [U+00D8, Ø; и U+00F8, ø].
  14. ^ 238 (EE hex ) идентифицируется IBM как греческий « Epsilon Small» [U+03B5, ε], но иногда отображается в OEM-шрифтах как знак элемента [U+2208, ∈]. Его часто использовали как знак евро [U+20AC, €].
  15. ^ 244 ( шестнадцатеричный F4 ) и 245 ( шестнадцатеричный F5 ) — это верхняя и нижняя часть интегрального символа (∫), и их можно расширить с помощью символа 179 (шестнадцатеричный B3 ) , вертикальной линии блока рисования прямоугольника. 244 также может использоваться для длинного символа s [U+017F, ſ].
  16. ^ 249 ( шестнадцатеричный F9 ) и 250 ( шестнадцатеричный FA ) почти неотличимы: первый — это точка немного большего размера, чем второй, оба использовались как маркеры , средняя точка и точка умножения [U+2219, ∙]
  17. ^ 251 ( шестнадцатеричный FB ) также иногда использовался в качестве галочки [U+2713, ✓].
  18. ^ 255 ( шестнадцатеричный FF ) рисует пустое пространство; использование в качестве неразрывного пространства (NBSP) имеет прецедент в текстовых процессорах , разработанных для IBM PC.

История

По словам Билла Гейтса в интервью с Гейтсом и Полом Алленом , которое появилось в выпуске журнала Fortune Magazine от 2 октября 1995 года , репертуар кодовой страницы 437 был взят из набора символов текстовых процессоров Ванга :

«...Мы также были очарованы специализированными текстовыми процессорами от Wang, потому что считали, что машины общего назначения могут делать это с тем же успехом. Вот почему, когда пришло время проектировать клавиатуру для IBM PC, мы вставили забавную В машину вставлены символы Вана — ну, вы знаете, смайлики, прямоугольники, треугольники и все такое. Мы подумали, что когда-нибудь нам хотелось бы сделать клон программного обеспечения для обработки текстов Вана».

Согласно интервью Дэвида Дж. Брэдли (разработчика ROM-BIOS ПК ), выбор персонажей был сделан во время четырехчасовой встречи во время перелета из Сиэтла в Атланту Энди Саенсом (ответственным за видеокарту) и Лью Эггебрехтом. (главный инженер по ПК) и он сам. [21]

Выбор графических символов имеет некоторую внутреннюю логику:

Большинство шрифтов для Microsoft Windows включают специальные графические символы в показанных индексах Юникода, поскольку они являются частью набора WGL4 , который Microsoft рекомендует поддерживать дизайнерам шрифтов. (Семейство моноширинных растровых шрифтов Terminal было первым шрифтом, который воспроизводил все символы кодовой страницы 437, по крайней мере, в некоторых разрешениях.) Чтобы нарисовать эти символы непосредственно из этих кодовых точек, шрифт Microsoft Windows под названием MS Linedraw [24] копирует все кодовая страница состоит из 437 символов, что обеспечивает один из способов отображения текста DOS на современном компьютере с Windows так, как это было показано в DOS, с ограничениями. [25]

Кодовая страница 1055 , также известная как набор символов HP 0L, [26] представляет собой подмножество, которое включает в себя рисунок прямоугольника, полублоки, черные круги (черный круг заменяет маркер, который заменяет среднюю точку на этой кодовой странице), и черный квадрат и перемещает их в верхнюю половину; пространство также включено. [27]

Интернационализация

Кодовая страница 437 содержит ряд международных символов, в основном значения от 128 до 175 (от 80 до шестнадцатеричных AF ). Однако он полностью охватывает только несколько основных западноевропейских языков, включая английский , немецкий и шведский [примечание 2], и поэтому в нем отсутствуют несколько символов (в основном заглавные буквы), важных для многих основных западноевропейских языков:

Наряду с символами валюты цент (¢), фунт стерлингов (£) и иена / юань (¥), у него есть пара бывших символов европейской валюты: флорин (ƒ, Нидерланды) и песета (₧, Испания). Присутствие последнего необычно, поскольку испанская песета никогда не была валютой международного значения, а также никогда не имела собственного символа; его просто сокращали как «Пт», «Пта», «Птс» или «Птас». Испанские модели электрической пишущей машинки IBM , однако, также имели единственную позицию, посвященную ей.

Более поздние наборы символов DOS, такие как кодовая страница 850 (DOS Latin-1), кодовая страница 852 (DOS Центрально-Европейский) и кодовая страница 737 (DOS греческий), заполнили пробелы для международного использования с некоторой совместимостью с кодовой страницей 437, сохранив одинарные и двойные символы рисования прямоугольников, отбрасывая при этом смешанные ( например , горизонтальный двойной/вертикальный одинарный). Все символы кодовой страницы 437 имеют схожие глифы в Юникоде и наборе символов Microsoft WGL4 и, следовательно, доступны в большинстве шрифтов Microsoft Windows , а также в шрифте VGA по умолчанию ядра Linux и шрифтах ISO 10646 для X11 .

Смотрите также

Примечания

  1. ^ Системы, доступные в странах Восточной Европы, арабских и азиатских стран, часто используют другой набор; однако эти наборы разработаны так, чтобы максимально соответствовать 437. Обозначение «OEM», обозначающее «производитель оригинального оборудования», указывает на то, что производитель может изменить комплект для соответствия различным рынкам.
  2. ^ Он также полностью охватывает некоторые менее важные западноевропейские языки, а также некоторые другие языки, включая баскский , малайский и туркменский латинский алфавит до 1999 года , но, вероятно, это было непреднамеренно.

Рекомендации

  1. ^ Наборы символов, Управление по присвоению номеров в Интернете (IANA), 12 декабря 2018 г.
  2. ^ «Информационный документ CCSID 437» . Архивировано из оригинала 27 марта 2016 года.
  3. ^ "ОЕМ 437" . Go Global Developer Center . Майкрософт . Архивировано из оригинала 9 июня 2016 года . Проверено 22 сентября 2011 г.
  4. ^ ab «ОЕМ-шрифт». Энциклопедия . PCmag.com. Архивировано из оригинала 27 ноября 2020 года . Проверено 19 октября 2021 г.
  5. ^ Кано, Надин. «Кодовые страницы приложения H». Глобализация и локализация: Кодовая страница 437 DOS Latin US. Майкрософт . Архивировано из оригинала 17 марта 2016 года . Проверено 14 ноября 2011 г.
  6. ^ abc «Глоссарий терминов, используемых на этом сайте». Майкрософт . (Пожалуйста, смотрите описание термина «Alt+Numpad»). Архивировано из оригинала 8 сентября 2012 года . Проверено 17 августа 2018 г.
  7. ^ Мюррей Сарджент. «Ввод символов Юникода - Мюррей Сарджент: математика в офисе» . Проверено 17 августа 2018 г.
  8. ^ «Комбинации клавиш ALT + NUMPAD ASCII: α и Ω для создания неясных паролей» . Проверено 17 августа 2018 г.
  9. ^ «Вставка символов и символов на основе латиницы ASCII или Unicode — Служба поддержки Office» . Майкрософт . Проверено 17 августа 2018 г.
  10. ^ «Информационный документ о кодовой странице SBCS CPGID 00437» . Наборы кодированных символов и соответствующие ресурсы . ИБМ . 1986 [1984-05-01]. Архивировано из оригинала 9 июня 2016 года . Проверено 14 ноября 2011 г.
  11. Стил, Шон (24 апреля 1996 г.). «cp437_DOSLatinUS в таблицу Юникода» (TXT) . 2.00. Консорциум Юникод . Архивировано из оригинала 9 июня 2016 года . Проверено 14 ноября 2011 г.
  12. ^ Кодовая страница abcd CPGID 00437 (PDF) , IBM
  13. ^ abcd «Кодовая страница (CPGID): 00437». Наборы кодированных символов и соответствующие ресурсы . ИБМ . 1984 год . Проверено 3 августа 2023 г.
  14. ^ Международные компоненты для Unicode (ICU), ibm-437_P100-1995.ucm, 3 декабря 2002 г.
  15. Уистлер, Кен (27 июля 1999 г.). «Видеографика, отображаемая в памяти IBM PC, в Unicode». Консорциум Юникод .
  16. ^ «Набор японских графических символов IBM, кандзи: DBCS–Host и DBCS-PC» (PDF) . ИБМ . 2002. CH 3-3220-024 2002-11.
  17. ^ ab «Графические идентификаторы символов: алфавит, греческий». Наборы кодированных символов и соответствующие ресурсы . ИБМ . Проверено 25 февраля 2017 г. .
  18. ^ Консорциум Unicode (21 мая 2003 г.). «Глава 7: Европейские алфавитные сценарии». Стандарт Юникод 4.0 (PDF) . Аддисон-Уэсли (опубликовано в августе 2003 г.). п. 176. ИСБН 0-321-18578-1. Проверено 9 июня 2016 г.
  19. ^ «cpython/cp437.py в мастере · python/cpython · GitHub». Гитхаб . Проверено 17 августа 2018 г.
  20. ^ «Греческий и коптский: Диапазон: 0370–03FF» (PDF) . Стандарт Юникод, версия 9.0 . Консорциум Юникод . Проверено 25 февраля 2017 г. .
  21. ^ Эдвардс, Бендж (6 ноября 2015 г.) [2011]. «Происхождение смайлика ASCII: обмен электронными письмами с доктором Дэвидом Брэдли». Архивировано из оригинала 28 ноября 2016 года . Проверено 27 ноября 2016 г. Если вы посмотрите на первые 32 символа набора символов IBM PC , вы увидите множество причудливых символов — смайлик, музыкальные ноты, масти игральных карт и другие. Они предназначались для игр, основанных на персонажах [...] Поскольку мы использовали 8-битных персонажей, нам нужно было заполнить 128 новых мест. Мы поместили туда серьезные символы — три столбца иностранных символов, исходя из нашего опыта Datamaster . Три столбца блочных графических символов [...] многие клиенты с адаптером монохромного дисплея вообще не будут иметь графики. [...] в двух столбцах были математические символы, греческие буквы (для математики) и другие [...] около первых 32 символов (x00-x1F)? [...] Эти символы возникли в результате телетайпной передачи. Но мы могли бы отображать их на экранах персонажей. Поэтому мы добавили набор «несерьёзных» персонажей. Они предназначались только для отображения символов, а не для передачи или хранения. Наиболее вероятное их использование будет в играх, основанных на персонажах. [...] Как и в большинстве случаев для IBM PC, годичный график разработки оставлял мало времени для размышлений и пересмотра. [...] набор персонажей был разработан в ходе 4-часовой встречи трех человек, и я был одним из тех, кто летал на самолете из Сиэтла в Атланту. После этой встречи были внесены некоторые незначительные изменения, но нужно было спроектировать/исправить/решить много других вещей, вот и все. [...] другими участниками этого путешествия на самолете были Энди Саенс — ответственный за видеокарту и Лью Эггебрехт — главный инженер ПК.
  22. ^ Уилтон, Ричард (декабрь 1987 г.). Руководство программиста по видеосистемам ПК и PS/2: максимальная производительность видео для форматов EGA, VGA, HGC и MCGA (1-е изд.). Майкрософт Пресс . ISBN 1-55615-103-9.
  23. ^ Джошуа Д. Нил, Регистры контроллера атрибутов: регистр управления режимом атрибутов, страница информации о программировании видео VGA и SVGA аппаратного уровня: бит 2 — включение линейной графики.
  24. ^ Майк Джейкобс. «Семейство шрифтов MS LineDraw — Типография | Microsoft Docs». Типографика Майкрософт . 2.00. Корпорация Майкрософт . Проверено 17 августа 2018 г.
  25. Персонал (26 октября 2013 г.). «WD97: Шрифт MS LineDraw нельзя использовать в Word». Майкрософт . 2.0. Майкрософт . КБ179422, Q179422. Архивировано из оригинала 24 марта 2016 года . Проверено 1 июля 2012 года .
  26. ^ «Наборы символов HP» .
  27. ^ «Кодовая страница 1055» (PDF) . Архивировано из оригинала (PDF) 21 января 2013 года.

Внешние ссылки