コードページ437

この項目には、一部のコンピュータや閲覧ソフトで表示できない文字が含まれています（詳細）。 コードページ437とは、オリジナルのIBM PC（パーソナルコンピュータ）の文字セットである。CP437やOEM-US、OEM 437、PC-8、DOS Latin USとしても知られる。32番から126番のASCIIコード、アクセント付き文字（ダイアクリティカルマーク）の拡張範囲のコード、ギリシア文字がいくつか、アイコン、線を引くための記号、これらが含まれている。「OEMフォント」や「high ASCII」、「拡張ASCII」（同様に互換性のないASCII拡張の1つ）として言及されることもある。 この文字セットはEGAおよびVGAに互換性があるグラフィックカードの初期フォントとして残っている。PCが再起動してフォントが記録媒体から読み込まれる前に表示されるテキストは一般的にこの文字セットで描画される。IBM PCの時代に開発された多くのファイルフォーマットもまたコードページ437がもとになっている。 9×14ピクセルのフォントとしてIBM Monochrome Display Adapter (MDA) のROMに、またColor Graphics Adapter (CGA) カードの8×8ピクセルのフォントとしてこのフォントはオリジナルのIBM PCに含まれていた。 これらのディスプレイアダプタはすべて各文字のセルに8ビット文字のコードポイントが含まれているテキストモードが存在していて（詳細（英語版）はこちらを参照）、256通りの値が表示可能文字として使えるようになっていた。ASCIIで非表示可能文字として予約されている0番から31番の範囲のコードも含めて、256コードすべてが表示可能文字としてROMに割り当てられた。 東ヨーロッパの様々なPC機種で異なる文字セットが使われていて、ジャンパやCMOSの設定でユーザーが選べるものもあった。現地語のテキストを表示ができるようにしつつもコードポイントを多くの罫線素片で共有するなどして、可能な限りコードページ437と合うようにこれらの文字セットは設計された。 Altコード（英語版）の数字の組み合わせはコードページ437とその他のDOSコードページがもとになっている。Altキーを押しつつテンキーで3桁で十進法のAltキーコードを入力することによってユーザーは文字を入力できる。マイクロソフトによって（CP1252などの）専用の文字セットに、後にUnicodeにWindowsで切り替えがなされたとき、もとのコードは残された（マイクロソフトはテンキーで数字の前に0を入力することでCP1252など実際の文字セットでコードを入力できるようにした）。 コードページ437は次の表に表される。対応するUnicodeのコードポイントと十進法でのコードポイントが各文字とあわせて表示される。一部のコードポイントには対応するUnicodeのコードポイントが複数あるため下の注記も見ること。十進法のコードはAltコードとして知られてもいる。 256通りすべての8ビットコードにグラフィックがROMで提供されているが、一部のコードポイント、特に1番から31番の範囲と127番のコードは一部のAPIでは表示されない。代わりに制御文字として解釈される。例えばオリジナルのIBM PCでは多くのテキスト出力方法ではそれらのコードはBEL、BS、CR、LFとして解釈される。また多くのプリンタでもこれらの文字は印刷ができなかった。 凡例: 緑 アルファベット 黄 制御文字 赤 数字 青 記号 紫 拡張記号 橙 図形文字 桃 国際 灰 未定義 Unicodeに変換するときには一部のコードは一対一にUnicodeで対応するものがないことに気を付けるべきである。何が正しい選択かは状況による。 ^ a b c 0、32 (20hex)、255 (FFhex) ではすべて空白が表示される。IBM PC向けにデザインされたワードプロセッサではU+00A0のノンブレーキングスペース (NBSP) にあたる255が使われている。 ^ ギリシア文字の大文字のデルタ[U+0394, Δ]として127 (7Fhex) も時々使われた。 ^ 225 (E1hex) はIBMによってラテン文字の「小文字の鋭いs」[U+00DF, ß]として識別されているが、OEMフォントではギリシア文字の小文字のベータとして表示されることがある。 ^ 227 (E3hex) はIBMによってギリシア文字の「小文字のパイ」[U+03C0, π]として識別されているが、OEMフォントではギリシア文字の大文字のパイ[U+03A0, Π]やN項の総乗記号[U+220F, ∏]として表示されることがある。 ^ 228 (E4hex) はIBMによってギリシア文字の「大文字のシグマ」[U+03A3, Σ]として識別されているが、N項の総和記号[U+2211, ∑]としても使われる。 ^ 230 (E6 hex) はIBMによってギリシア文字の「「小文字のミュー」[U+03BC, μ]として識別されているが、マイクロ記号[U+00B5, µ]として使われることもある。UnicodeやIBMのギリシア文字のGCGID表ではこのコードページのこの文字はこのギリシア文字に対応付けられているが、例えばPythonではマイクロ記号に対応付けられている。 ^ 234 (EAhex) はIBMによってギリシア文字の「大文字のオメガ」[U+03A9, Ω]として識別されているが、オーム 記号[U+2126, Ω]としても使われる。Unicodeではオーム記号は大文字のオメガと同じであるとみなされており、後者をどちらの状況でも使うことを推奨している。 ^ 235 (EBhex) はIBMによってギリシア文字の「「小文字のデルタ」として識別されている。また非公式的に小文字のエズ[U++00F0, ð]や偏微分の記号[U+2202, ∂]としても使われた。 ^ 237 (EDhex) はIBMによってギリシア文字の「「小文字の(閉じた形の)ファイ」[U+03D5, ϕ、または斜体の数学用英数字記号であるU+1D719, 𝜙]として識別されているが、 （Pythonのコーデックライブラリなど）一部のコーデックは開いた（または緩い）字形[U+03C6, φ]でUnicodeに割り当てられている。IBMのギリシア文字のGCGID表とUnicodeのギリシア文字のチャートを見比べると、Unicodeへの対応付けを行うときにどこで開いた形と閉じた形をIBMは逆にしたかなどが分かる。この文字は空集合の記号[U+2205, ∅]や、直径記号[U+2300, ⌀]、ストローク付きの0[U++00D8, ØとU++00f8, ø]として使われることもある。 ^ 238 (EEhex) はIBMによってギリシア文字の「「小文字のエプシロン」[U+03B5, ε]として識別されているが、OEMフォントでは属する記号[U+2208, ∈]として表示されることがある。後に非公式的にユーロ記号[U+20AC, €]として使われた。 ^ チェックマーク[U+2713, ✓]として251 (FBhex) も時々使われた。 ビル・ゲイツは1995年10月2日号のFortune Magazineのビル・ゲイツとポール・アレンとのインタビューの中でワングのワードプロセッサの文字セットからコードページ437の範囲はとられたと述べている。 "... We were also fascinated by dedicated word processors from Wang, because we believed that general-purpose machines could do that just as well. That's why, when it came time to design the keyboard for the IBM PC, we put the funny Wang character set into the machine—you know, smiley faces and boxes and triangles and stuff. We were thinking we'd like to do a clone of Wang word-processing software someday." 「...汎用マシンでワードプロセッサと同じ役目が果たせると考えていたため、ワングの専用ワードプロセッサにわたしたちも夢中になりました。IBM PCのキーボードをデザインすることになったときに、お知りの通り笑顔や四角形や三角形など、ユーモアのあるワングの文字セットをマシンに取り入れたのはこれが理由です。」 デイビッド・J・ブラッドリー（PCのBIOSの開発者）のインタビューによると、Andy Saenz（ビデオカードの責任者）、Lew Eggebrecht（PCの主任技術者）、また彼自身によってシアトルからアトランタへの飛行機に乗っているときの4時間の会議中にこれらの文字は定められた。 表示文字の選ばれ方に関する内部規則がある。 表の0番目と1番目の行、0番から31番 (00hexから1Fhex) までのコードは装飾記号(補足や装飾用の文字)に分類される。127 (7Fhex) 番と離れている文字もこのグループに属する。 表の2番目から7番目の行、(127 (7Fhex) 番の文字を除いて、)32番から126番 (20hexから7Ehex) までのコードはASCII印字可能文字になる。 表の8番目から10番目 (8hexからAhex )の行、128番から175番 (80hexからAFhex) までのコードは国際的なテキスト文字を収録している。 表の11番目から13番目 (BhexからDhex)、176番から223番 (B0hexからDFhex) までのコードは罫線素片とブロック文字になる。右側に線がある文字や右側を塗りつぶすための文字は全て192番から223番 (C0hexからDFhex) までの文字に含まれるように、このブロックは配置されている。オリジナルのIBM PCのMDAではこのコードページの437グリフは8ピクセルの幅のビットマップとして保持されていたが、見た目をよくするために画面上では9ピクセルごとに表示された。この範囲の文字における各文字の8番目のピクセル列は特殊なハードウェア回路によって重複して表示され、各行の隙間、特に塗りつぶしを行った際の隙間をなくすために使われた。 表の14番目から15番目 (EhexからFhex) の行、224番から255番 (E0hexからFFhex) までのコードは数学記号にあてられていて、最初の12コードは物理でよく使われるギリシャ文字を収録している。244番目 (FAhex) と245番目 (FBhex) は積分記号(∫)として使われる記号である斜体の長いsの上の部分、下の部分になっていて、179 (B3hex) 番の文字である罫線素片の縦線で伸ばせるようになっている。244 (F4hex) 番目の文字は長いs (ſ) の代替として使うこともできる。249番目 (F9hex) と250番目 (FAhex) は、前者が印刷上の中黒 (·) に似た後者を少し大きくしたものであり、ほとんど区別がつかない。255 (FFhex) 番目の文字はただ空白であり、数式を整えるためのノーブレークスペースのようなものとして働く。 マイクロソフトによってフォントのデザイナーにサポートすることが推奨されているWGL4セットの一部として、Windowsの多くのフォントはこれらの特別な表示文字は示したUnicodeのインデックスに含まれている。（少なくとも一部の解像度において、等幅のラスターフォントファミリであるTerminalはコードページ437の文字すべてを持つ初期のフォントである。）これらの文字をコードページ437のコードポイントから直接表示するためにMS LinedrawというWindowsのフォントはコードページ437の文字すべてを持ち、制限付きながらも、DOS向けのテキストをDOSで表示したように今のWindowsマシンで表示できるようにしている。 大体128から175の数値で国際文字が一続きにコードページ437に存在する。しかしながら多くの西洋の言語に大切ないくつかの文字が欠けている。 スペイン語: Á、Í、Ó、Ú フランス語: À、Â、È、Ê、Ë、Î、Ï、Ô、Œ、œ、Ù、Û、Ÿ ポルトガル語: Á、À、Â、Ã、ã、Ê、Í、Ó、Ô、Õ、õ、Ú カタルーニャ語: À、È、Í、Ï、Ò、Ó、Ú イタリア語: À、È、Ì、Ò and Ù アイスランド語: Á、Ð、ð、Í、Ó、Ú、Ý、ý、Þ、þ デンマーク語/ノルウェー語: Øø うまく描画されないかもしれないが、（加えて、ストローク付きのOからはさらに遠ざかった形である開いた形のファイや閉じた形の垂直なファイとして、Unicodeに対応づけられたりUnicodeのフォントで描画されやすい。）237 (EDhex) 番目の文字の(近い形をしている)小文字のファイが代替として使える。 これを埋め合わせるために、デンマーク語やノルウェー語、アイスランド語のコードページ(コードページ865とコードページ861)ではセント記号 (¢) をø、円記号 (¥) をØで置き換えた。 基本的な数学記号の範囲をこえたほとんどのギリシア文字の記号は省略されている。(ギリシア語のコードーページのコードページ737とコードページ869には含まれた。) セント(¢)、ポンド(£)、円/元(¥)の通貨記号といっしょに以前使われていたヨーロッパの通貨記号がいくつかある。フローリン（ƒ、オランダ）やペセタ（₧、スペイン）である。スペインのペセタは国際的な通用力を持っていたわけでもなく、また「Pt」、「Pta」、「Pts」、「Ptas」のように省略されていただけであってそれ自体の記号はなかったため、後者の存在は異例である。ただしIBM Electric typewriterのスペインモデルでもその記号に独立した位置づけがされていた。 コードページ850(DOS Latin-1)やコードページ850(DOS 中央ヨーロッパ)、コードページ737(DOS ギリシア語)のような後にできたのODS用の文字セットでは、混ぜ合わせた文字（例 二重線の横線/単線の縦線）は無くしつつも、単線および二線の罫線素片を残してコードページ437との互換性を部分的に保ちつつ国際的な使用をするために隙間がなくなっている。UnicodeとマイクロソフトのWGL4の文字セットに似ている字形がコードページ437の文字すべてにあり、そのためWindowsのほとんどのフォントで、またLinuxカーネルの標準VGAフォントで、X11のISO 10646フォントで使うことができる。 Altコード（英語版） ANSI ASCII セミグラフィック（英語版） Atari ST文字セット（英語版） (コードページ437からの派生) ^ 西ヨーロッパやアラブ、アジアの国でのシステムでは異なる文字セットがよく使われる。「OEM」という名称は「他社ブランドの機器製造メーカー」を意味し、ROMで提供される「ネイティブ」なハードウェア文字セットは製造メーカーによって異なる市場に沿うように変えられるということを示す。 ^ “OEM 437”. Go Global Developer Center. マイクロソフト. 2016年6月9日時点のオリジナルよりアーカイブ。2011年9月22日閲覧。 ^ a b “OEM font”. Encyclopedia. PCmag.com. 2011年11月15日閲覧。 ^ Kano, Nadine. “Appendix H Code Pages”. Globalization and Localization : Code Page 437 DOS Latin US. マイクロソフト. http://msdn.microsoft.com/en-us/library/cc195060.aspx 2011年11月14日閲覧。  ^ a b c “Glossary of Terms Used on this Site”. マイクロソフト. 2018年8月17日閲覧。 ^ Murray Sargent. “Entering Unicode Characters – Murray Sargent: Math in Office”. 2018年8月17日閲覧。 ^ “ALT+NUMPAD ASCII Key Combos: The α and Ω of Creating Obscure Passwords”. 2018年8月17日閲覧。 ^ “Insert ASCII or Unicode Latin-based symbols and characters - Office Support”. マイクロソフト. 2018年8月17日閲覧。 ^ “SBCS code page information document CPGID 00437”. Coded character sets and related resources. IBM (1986年). 2016年6月9日時点のオリジナルよりアーカイブ。2011年11月14日閲覧。 ^ Steele, Shawn (1996年4月24日). “cp437_DOSLatinUS to Unicode table” (TXT). Unicodeコンソーシアム. 2011年11月14日閲覧。 ^ “Code Page (CPGID): 00437” (TXT). Coded character sets and related resources. IBM (1984年). 2017年2月25日閲覧。 ^ a b “Graphic character identifiers: Alphabetics, Greek”. Coded character sets and related resources. IBM. 2017年2月25日閲覧。 ^ Unicodeコンソーシアム (2003-05-21). “Chapter 7: European Alphabetic Scripts” (PDF). The Unicode Standard 4.0. Addison-Wesley (2003-8発行). p. 176. ISBN 0-321-18578-1. https://www.unicode.org/versions/Unicode4.0.0/ch07.pdf 2016年6月9日閲覧。  ^ “cpython/cp437.py at master · python/cpython · GitHub”. 2018年8月17日閲覧。 ^ “Greek and Coptic: Range: 0370–03FF” (PDF). The Unicode Standard, Version 9.0. Unicodeコンソーシアム. 2017年2月25日閲覧。 ^ “Origins of the ASCII Smiley Character: An Email Exchange With Dr. David Bradley” (2015年11月6日). 2016年11月27日閲覧。 “[…] If you look at the first 32 characters in the IBM PC character set you'll see lots of whimsical characters — smiley face, musical notes, playing card suits and others. These were intended for character based games […] Since we were using 8-bit characters we had 128 new spots to fill. We put serious characters there — three columns of foreign characters, based on our Datamaster experience. Three columns of block graphic characters […] many customers with Monochrome Display Adapter would have no graphics at all. […] two columns had math symbols, greek letters (for math) and others […] about the first 32 characters (x00-x1F)? […] These characters originated with teletype transmission. But we could display them on the character based screens. So we added a set of "not serious" characters. They were intended as display only characters, not for transmission or storage. Their most probable use would be in character based games. […] As in most things for the IBM PC, the one year development schedule left little time for contemplation and revision. […] the character set was developed in a three person 4-hour meeting, and I was one of those on that plane from Seattle to Atlanta. There was some minor revision after that meeting, but there were many other things to design/fix/decide so that was about it. […] the other participants in that plane trip were Andy Saenz — responsible for the video card, and Lew Eggebrecht — the chief engineer for the PC.”(訳注: 引用の翻訳: [...]IBM PCの文字セットの最初の32文字を見たらスマイリーフェイスや音符、トランプのスートなど、たくさんの変わった文字があることがわかります。これらは文字ベースのゲームに使うためのものでした。[...]8ビット文字を使っていたため新たに128この空きがありました。データマスターでの経験をもとにして重要な文字、外国語の文字を三桁にわたりいれました。ブロックの表示文字を三桁にわたりいれました。[...]MDAを持っている多くの顧客はグラフィックはまったく使えなかったでしょう。[...]残りの2桁には数学記号や(数学用の)ギリシア文字などがありました。[...]最初の32文字(x00からx1F)はどうしましょうか。[...]これらの文字はテレタイプの送信から来ていますが、文字ベースの画面に表示できました。なので「重要ではない」文字を加えました。文字を表示するためであって通信や保管のためではありませんでした。一番ありそうな使い方は文字ベースのゲームでしょう。[...]IBM PCに関してほとんどのことはそうでしたが、1年間の開発スケジュールではよく考えたり、修正を行う時間はほとんどありませんでした。[...]その文字セットは3人での4時間の会議中に開発されました。またそのシアトルからアトランタへの飛行機の中で会議を行った人の1人は私です。会議の後ちょっとした改訂のようなものがありましたが、そのために設計や修正、決定することがほかにもたくさんありました。[...]その飛行機に乗っているときにいたほかの関係者としてビデオカードの責任者のAndy Saenz、そのPCの主任技術者のLew Eggebrechtがいました。) ^ Programmer's Guide to PC & PS/2 Video Systems: Maximum Video Performance Form the EGA, VGA, HGC, and MCGA (1st ed.). Microsoft Press. (1987-12). ISBN 1-55615-103-9. 978-1-55615-103-3  ^ Mike Jacobs. “MS LineDraw font family - Typography | Microsoft Docs”. Microsoft typography. マイクロソフト. 2018年8月17日閲覧。 ^ Staff (2013年10月26日). “WD97: MS LineDraw Font Not Usable in Word”. Microsoft. マイクロソフト. 2016年3月24日時点のオリジナルよりアーカイブ。2012年7月1日閲覧。 IBM Code Page 437 reference chart IBM PC memory-mapped video graphics to Unicode Unicode公式サイト