Из Википедии, бесплатной энциклопедии
  (Перенаправлено с кодовой страницы 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 пиксели-за-символ шрифта Graphics Adapter Color ( CGA ) открытки. [ Править ] IBM Enhanced Graphics Adapter (ЭГ) содержал 8 × 14 пикселей-за-версию символа, и VGA содержал версию 9 × 16. [ необходима цитата ]

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

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

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

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

Набор символов [ править ]

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

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

  Письмо  Число  Пунктуация  Условное обозначение  Другой  Неопределенный

Сравнение символов в диапазоне от E0 до EF в различных продуктах IBM.

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

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

История [ править ]

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

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

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

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

  • Строки таблицы 0 и 1, коды от 0 до 31 (от 00 в шестнадцатеричном формате до 1F в шестнадцатеричном формате ), представляют собой различные дингбаты (дополнительные и декоративные символы). Изолированный символ 127 (7F шестнадцатеричный ) также принадлежит к этой группе.
  • Строки со 2 по 7 таблицы, коды с 32 по 126 (от 20 шестнадцатеричных до 7E шестнадцатеричных ) являются стандартными печатными символами ASCII .
  • Строки таблицы с 8 по 10, коды от 128 до 175 (от 80 шестнадцатеричных до AF шестнадцатеричных ), представляют собой набор международных текстовых символов.
  • Строки таблицы с 11 по 13, коды с 176 по 223 ( шестнадцатеричные от B0 до DF шестнадцатеричные ), представляют собой прямоугольные символы и символы блока . Этот блок устроен так, что символы с 192 по 223 ( шестнадцатеричный от C0 до шестнадцатеричного значения DF ) содержат все правые руки и области, закрашенные справа. Исходный адаптер дисплея IBM PC MDA хранил глифы из 437 символов кодовой страницы как растровые изображения шириной восемь пикселей , но для визуального улучшения отображал их каждые девять пикселей на экране. В этом диапазоне символов восьмой столбец пикселей дублировался специальной аппаратной схемой [21].таким образом заполняя пробелы в линиях и заполненных областях. Адаптер VGA позволяет включать и выключать это поведение. [22]
  • Строки 14 и 15 таблицы, коды с 224 по 254 (от E0 шестнадцатеричного до FE шестнадцатеричного ) посвящены математическим символам, где первые двенадцать представляют собой набор греческих букв, обычно используемых в физике.

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

Интернационализация [ править ]

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

  • Испанский : Á, Í, Ó и Ú
  • Французский : À, Â, È, Ê, Ë, Î, Ï, Ô, Œ, œ, Ù, Û и Ÿ
  • Португальский : Á, À, Â, Ã, ã, Ê, Í, Ó, Ô, Õ, õ и Ú
  • Каталанский : À, È, Í, Ï, Ò, Ó и Ú
  • Итальянский : À, È, Ì, и Ù
  • Исландский : Á, Ð, ð, Í, Ó, Ú, Ý, ý, Þ и þ
  • Датский / норвежский : Ø и ø. Номер 237 ( шестнадцатеричный код ED ), малый фи (закрытая форма), можно использовать в качестве суррогата, даже если он может плохо отображаться (кроме того, он имеет тенденцию отображаться в Unicode и / или отображаться в шрифтах Unicode, так как открытый -form phi или замкнутая вертикальная форма phi, которые даже дальше от O с чертой). Для компенсации в кодовых страницах датского / норвежского и исландского языков ( 865 и 861 ) знак цента (¢) заменен на ø, а знак йены (¥) - на Ø.
  • Большинство символов греческого алфавита были опущены, за исключением основных математических символов. (Они были включены в кодовые страницы греческого языка 737 и 869. У некоторых греческих символов, которые уже были на кодовой странице 437, были изменены глифы с математической или научной формы, чтобы соответствовать фактическому использованию в греческом языке.)

Наряду с символами валюты цент (¢), фунт стерлингов (£) и иена / юань (¥), он имеет пару бывших символов европейской валюты: флорин (ƒ, Нидерланды) и песета (₧, Испания). Наличие последнего необычно, поскольку испанская песета никогда не была международной валютой, а также никогда не имела собственного символа; его просто сокращали как «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..

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

  • Альтернативный код
  • ANSI
  • ASCII
  • Полиграфические символы
  • Набор символов Atari ST , полученный из кодовой страницы 437

Заметки [ править ]

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

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

  1. ^ Наборы символов , Internet Assigned Numbers Authority (IANA), 12 декабря 2018 г.
  2. ^ "Информационный документ CCSID 437" . Архивировано из оригинального 27 марта 2016 года.
  3. ^ "OEM 437" . Перейти в глобальный центр разработчиков . Microsoft . Архивировано из оригинала 9 июня 2016 года . Проверено 22 сентября 2011 года .
  4. ^ a b "Фирменный шрифт" . Энциклопедия . PCmag.com . Проверено 15 ноября 2011 года .
  5. ^ Кано, Надин. «Приложение H Кодовые страницы». Глобализация и локализация: кодовая страница 437 DOS Latin US . Разработка международного программного обеспечения . Microsoft . Архивировано 17 марта 2016 года . Проверено 14 ноября 2011 года .
  6. ^ a b c «Глоссарий терминов, используемых на этом сайте» . 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 в таблицу Unicode» (TXT) . 2.00. Консорциум Unicode . Архивировано 9 июня 2016 года . Проверено 14 ноября 2011 года .
  12. ^ Кодовая страница CPGID 00437 (pdf) (PDF) , IBM
  13. ^ Кодовая страница CPGID 00437 (txt) , IBM
  14. ^ Международные компоненты для Unicode (ICU), Ibm-437_P100-1995.ucm , 3 декабря 2002 года
  15. ^ "Кодовая страница (CPGID): 00437" . Наборы кодированных символов и связанные ресурсы . IBM . 1984 . Проверено 25 февраля 2017 года .
  16. ^ a b «Графические идентификаторы символов: алфавит, греческий» . Наборы кодированных символов и связанные ресурсы . IBM . Проверено 25 февраля 2017 года .
  17. ^ Unicode , Консорциум (21 мая 2003). «Глава 7: Европейские алфавитные письма». Стандарт Unicode 4.0 (PDF) . Addison-Wesley (опубликовано в августе 2003 г.). п. 176. ISBN.  0-321-18578-1. Проверено 9 июня +2016 .
  18. ^ "cpython / cp437.py на главном сервере · python / cpython · GitHub" . Проверено 17 августа 2018 года .
  19. ^ «Греческий и коптский: Диапазон: 0370–03FF» (PDF) . Стандарт Unicode, версия 9.0 . Консорциум Unicode . Проверено 25 февраля 2017 года .
  20. Эдвардс, Бендж (6 ноября 2015 г.) [2011]. «Происхождение символа смайлика ASCII: обмен электронной почтой с доктором Дэвидом Брэдли» . Архивировано 28 ноября 2016 года . Проверено 27 ноября 2016 года . […] Если вы посмотрите на первые 32 символа в наборе символов IBM PC, вы увидите множество причудливых персонажей - смайлик, музыкальные ноты, масти игральных карт и другие. Они были предназначены для игр с персонажами […] Поскольку мы использовали 8-битные символы, у нас было 128 новых мест, которые нужно было заполнить. Помещаем туда серьезных персонажей - три колонки иностранных персонажей на основе нашего Datamasterопыт. Три столбца блочных графических символов […] у многих клиентов с Monochrome Display Adapter вообще не будет графики. […] В двух столбцах были математические символы, греческие буквы (для математики) и другие […] о первых 32 символах (x00-x1F)? […] Эти символы возникли при передаче по телетайпу. Но мы могли отображать их на экранах персонажей. Итак, мы добавили набор «несерьезных» персонажей. Они были предназначены только для отображения символов, а не для передачи или хранения. Их наиболее вероятное использование будет в играх, основанных на персонажах. […] Как и в большинстве случаев для IBM PC, годичный график разработки оставлял мало времени для размышлений и пересмотра. […] Набор персонажей был разработан в ходе четырехчасовой встречи из трех человек, и я был одним из тех, кто летел из Сиэтла в Атланту.После этой встречи были внесены некоторые незначительные изменения, но нужно было спроектировать / исправить / решить множество других вещей, так что это все. […] Другими участниками той поездки на самолете были Энди Саенс, ответственный за видеокарту, и Лью Эггебрехт, главный инженер ПК.
  21. ^ Уилтон, Ричард (декабрь 1987). Руководство программиста по видеосистемам для ПК и PS / 2: максимальная производительность видео для EGA, VGA, HGC и MCGA (1-е изд.). Microsoft Press . ISBN 1-55615-103-9. ISBN 978-1-55615-103-3 . 
  22. ^ Джошуа Д. Нил, Регистры контроллера атрибутов: Регистр управления режимом атрибутов , Аппаратный уровень VGA и SVGA Страница информации о программировании видео: бит 2 - это включение линейной графики.
  23. ^ Майк Джейкобс. «Семейство шрифтов MS LineDraw - Типография | Microsoft Docs» . Типографика Microsoft . 2.00. Корпорация Microsoft . Проверено 17 августа 2018 года .
  24. ^ Персонал (26 октября 2013 г.). «WD97: Шрифт MS LineDraw не используется в Word» . Microsoft . 2.0. Microsoft . KB179422, Q179422. Архивировано 24 марта 2016 года . Проверено 1 июля 2012 года .

Внешние ссылки [ править ]

  • Видеографика IBM PC с отображением памяти в Unicode на официальном сайте Unicode