stringtranslate.com

Код страницы 437

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

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

Адаптеры дисплея

Оригинальный IBM PC содержал этот шрифт как шрифт размером 9×14 пикселей на символ, хранящийся в ПЗУ IBM Monochrome Display Adapter (MDA) , и шрифт размером 8×8 пикселей на символ карт Color Graphics Adapter ( CGA ). [ необходима цитата ] IBM Enhanced Graphics Adapter (EGA) содержал версию размером 8×14 пикселей на символ, а VGA содержал версию размером 9×16. [ необходима цитата ]

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

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

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

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

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

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

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

  Символы и знаки препинания

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

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

История

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

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

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

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

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

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

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

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

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

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

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

Примечания

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

Ссылки

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

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