コードページ850

コードページ850（CP 850やIBM 00850、OEM 850、DOS Latin 1とも知られている）は西ヨーロッパでDOSやPSIONによるEPOC16（英語版）の下で使われているコードページである。国設定やシステム設定によって、英語が話されている多様な地域（例えばイギリスやアイルランド、カナダ内）を含む多くの国ではコードページ850が主なコードページとして標準のOEMコードページ（英語版）になるが、（アメリカのように）英語が話されている他の地域ではハードウェアコードページ（英語版）であるコードページ437が標準で使われる。 コードページ850はシステムによって初めにWindows-1252（よくISO-8859-1と誤表記される）に置き換えられ、次にUCS-2に置き換えられ、最終的にはUTF-16に置き換えられた。 罫線素片やギリシア文字、様々な記号がダイアクリティカルマークつきのラテン文字を追加して置換されたことにより、西ヨーロッパ言語（ISO 8859-1からのすべての文字が含まれる）のサポートが大幅に向上している点でコードページ850はコードページ437と異なる。同時に、テキストモードでGUI風の画面を表示するために罫線素片を使用していたプログラムによる表示上の不具合がこの変更によってよく発生した。 1998年には、コードページ858がこのコードページからコードポイント213(D5hex)を点のないi‹ı›からユーロ記号‹€›に変更した派生としてできた。これにもかかわらず、1998年にリリースされたIBMのPC DOS 2000は新しいコードページであるコードページ858のサポートを加えるのでなくコードページ850の定義を修正コードページ850と呼ばれるものにしてコードポイント213番にユーロ記号を含めるようにした。 コードページ850は次の表に表される。対応するUnicodeのコードポイントと十進法によるコードポイントが各文字とあわせて表示される。表の最初の半分（0から127のコードポイント）はASCIIと同じであるため、後の半分（128番から255番のコードポイント）のみを表示する。なお1番から31番のコードポイントと127番のコードポイント(01–1Fhexと7Fhex)は状況によってASCII制御文字であったりコードページ437のグラフィック文字のどちらかになる。 凡例: 緑 アルファベット 黄 制御文字 赤 数字 青 記号 紫 拡張記号 橙 図形文字 桃 国際 灰 未定義 西洋におけるラテン文字集合 (コンピュータ)（英語版） ハードウェアコードページ（英語版） LMBCS-1 ^ 初めからUnicodeはWindows NT系でネイティブなサポートがなされていたが、開発ツールのサポートやWindows 9x系との互換性の問題によって多くのアプリケーションは8ビットのコードページを使い続けた。 ^ この原因はMS-DOS/PC DOSの下でのコードページの切り替えロジックの実装上での制限にさかのぼれる可能性がある。MS-DOS/PC DOSでは.CPIファイルはサイズで64KB、最多で6つのコードページという制限があり、この制限はMS-DOSの一部のOEM版やWindows NTでは回避されており、DR-DOSには存在もしていなかった。加えて、DR-DOSに存在しない制限としてCOUNTRY.SYS中の国/コードページは最大で146つまたは438つにMS-DOS/PC DOSのパーサーによって制限されている。そのため、コードページ858のサポートを加えることは同時に他のコードページ（例 コードページ850）のサポートを止めるということにもなりえた。一部のアプリケーションはコードページ850を使うようにハードコードされていたことを踏まえると、それは当時実行可能な解決方法ではなかったのかもしれない。(訳注: 翻訳時点 (2018-8-18) ではここの出典をコメントアウトされて原文に記載されています。) ^ a b “00850”. Code pages by CPGID. IBM. 2016年6月6日時点のオリジナルよりアーカイブ。2016年6月6日閲覧。 ^ a b “OEM 850”. Go Global Developer Center. マイクロソフト. 2016年6月6日時点のオリジナルよりアーカイブ。2016年6月6日閲覧。 ^ “Code Page 850 MS-DOS Latin 1”. Developing International Software. マイクロソフト. 2016年6月6日閲覧。 ^ Paul, Matthias (1997-07-30). “II.16.iii. Landessprachliche Unterstützung - Landescodes und Keyboard-Kürzel [II.16.iii. National language support - Country codes and keyboard layout IDs]” (ドイツ語). NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds (e-book) (edition 3, release 157 ed.). http://www.antonis.de/dos/dos-tuts/mpdostip/html/nwdostip.htm 2016年6月6日閲覧。  (NB. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file.) ^ “00858”. Code pages by CPGID. IBM. 2016年6月6日時点のオリジナルよりアーカイブ。2016年6月6日閲覧。 ^ a b Paul, Matthias (2001年8月27日). “Changing codepages in FreeDOS (follow-up)”. 2013年5月8日閲覧。 “[…] one could also create custom .CPI files in the traditional FONT style without difficulties, but you could only store up to […] six codepages in such a file if it should be useable by MS-DOS/PC DOS (some OEM issues and NT can handle files larger than 64 Kb, but MS-DOS/PC DOS can not).” ^ a b Paul, Matthias (2001年8月15日). “Changing codepages in FreeDOS”. 2016年6月6日時点のオリジナルよりアーカイブ。2016年6月6日閲覧。 “The new official ID for the Multilingual "codepage 850 with EURO SIGN" is 858, not 850. IBM will switch to use 858 instead of their 850 variant with future issues of their products. […] I can only guess why they didn't add 858 to their EGAx.CPI, COUNTRY.SYS, and KEYBOARD.SYS files in PC DOS 2000. Many third-party applications are designed to work with 850 and didn't know about 858 at the time PC DOS 2000 was released, so it's easier for everyone, but unfortunately it's not compatible. […] As explained above, COUNTRY.SYS and KEYBOARD.SYS contain only two codepage entries for a given country in Western issues of DOS. (In Arabic and Hebrew issues there can be up to 8 codepages for one country, in theory there is no limit below the range of allowed codepages 1..65534). […] The problem is that removing support for 850 might have caused compatibility problems with applications which are hard-wired to use 850. Adding 858 as a third choice to all the files would have increased the file and table sizes significantly. The COUNTRY.SYS file parser in MS-DOS/PC DOS IO.SYS/IBMBIO.COM sets aside a 6 Kb (for DOS 6) scratchpad to load all the info. This allows a maximum of 438 entries in a COUNTRY.SYS file to be accepted, otherwise you will get the message "COUNTRY.SYS too large.". The NLSFUNC parser does not have this limitation, and the file parsers in DR-DOS (kernel and NLSFUNC) also do not know of such a restriction. Older issues of MS-DOS/PC DOS even had a 2 Kb buffer for a maximum of 146 entries.” (訳注: 引用部分の翻訳: 多言語用の「ユーロ記号があるコードページ850」の新たな公式識別名は850ではなく858です。IBMは製品に将来的に問題がおこるIBMのコードページ850の派生ではなくコードページ858を使うようにするでしょう。[...]ただどうしてPC DOS 2000のEGAx.CPIやCOUNTRY.SYS、KEYBOARD.SYSファイルにコードページ858を加えなかったのか推測できます。PC DOS 2000がリリースされたとき、多くのサードパーティーのアプリケーションはコードページ850で動くように設計されていてコードページ858のことはわかりませんでした。そのためそうしたほうがだれにとっても楽なのですが不幸なことに互換性がありません。[...]上記で説明した通りにDOSは西洋向けではCOUNTRY.SYSとKEYBOARD.SYSは対象国向けには2つしかコードページの登録がありません。(アラビア語やヘブライ語向けのリリースでは一つの国にたいして最大で8つのコードページが含まれます。理屈上は1から65534の認められたコードページの範囲内では制限がありません。)[...]問題になるのはコードページ850のサポートをなくすことはコードページ850を使うようにハードコーディングされているアプリケーションとの互換性問題をおこす可能性があるということです。新たな選択肢としてコードページ858を増やすとファイルやテーブルのサイズが大きく増えたでしょう。MS-DOSやPC-DOSのIO.SYS/IBMBIO.COMのCOUNTRY.SYSのパーサーはCOUNTRY.SYSの情報をすべて読み込むために(DOS 6では)6KBのバッファを用意します。これによってCOUNTRY.SYSファイルには受け付けられる最大登録数が438つになり、それを超えていると「COUNRY.SYSが大きすぎます」というメッセージが出ます。NLSFUNCパーサーはこの制限がなく、DR-DOS(カーネルおよびNLSFUNC)のファイルパーサーもそのような制限はありません。MS-DOSやPC-DOSはさらに古いリリースではさらに2KBのバッファしかなく最大で146つの登録しかできませんでした。) ^ Starikov, Yuri (2005年4月11日). “15-летию Russian MS-DOS 4.01 посвящается” [15 Years of Russian MS-DOS 4.01] (ロシア語). 2014年5月7日閲覧。 ^ “cp850_DOSLatin1 to Unicode table”. The Unicode Consortium. 2016年6月6日閲覧。