いくつかの 8 ビット文字セット(エンコーディング) は、一般的な西ヨーロッパ言語 (イタリア語、スペイン語、ポルトガル語、フランス語、ドイツ語、オランダ語、英語、デンマーク語、スウェーデン語、ノルウェー語、アイスランド語) のバイナリ表現用に設計されました。これらの文字セットでは、ラテン アルファベット、いくつかの追加文字と合成発音区別符号付きの文字、一部の句読点、さまざまな記号(一部のギリシャ文字を含む) が使用されます。これらの文字セットは、マレー語、スワヒリ語、古典ラテン語など、他の多くの言語もサポートしています。
この資料は技術的には時代遅れで、機能的にはUnicodeに置き換えられています。しかし、歴史的な興味は依然として残っています。
まとめ
ISO -8859シリーズの8 ビット 文字セットは、ヨーロッパで使用されるすべてのラテン文字セットをエンコードしますが、同じコード ポイントが複数の用途で使用され、いくつかの問題 (文字化けや通信の問題など) が発生しました。すべてのグリフに一意のコード ポイントを持つUnicodeの登場により、これらの問題は解決されました。
- ISO/IEC 8859-1またはLatin-1は最も多く使用されており、Unicodeの最初の 256 個のコードポイントも定義しています。
- ISO/IEC 8859-15 はISO-8859-1を変更して、エストニア語、フィンランド語、フランス語を完全にサポートし、ユーロ記号を追加します。
- Windows-1252はISO-8859-1のスーパーセットであり、ISO/IEC 8859-15の印刷可能な文字や、曲線引用符( Microsoft Word設定や同様のプログラムではスマート引用符とも呼ばれる)などの一般的な句読点が含まれています。Windows 用のWeb ページ ツールではWindows-1252 が使用され、Web ページにはISO-8859-1 を使用しているというラベルが付けられることがよくありますが、これはHTML5で対処されており、ISO-8859-1 としてラベル付けされたページは Windows-1252 として解釈される必要があります。
- IBM CP437 は英語のみを対象としており、アクセント付き文字(特に大文字)はほとんどありませんが、ここでリストされている他の IBMコード ページよりもはるかに多くのグラフィック文字があり、技術記号として役立つ数学文字やギリシャ文字もいくつかあります。
- IBM CP850には、 ISO-8859-1にあるすべての印刷可能な文字(ただし、配置は異なります) があり、使用可能なテキスト モードユーザー インターフェイスを構築するのに十分なグラフィック文字も備えています。
- IBM CP858はCP850と1文字だけ異なります。トルコ以外ではほとんど使用されず、大文字に相当する文字も提供されていないドットのないi(ı )がユーロ通貨記号(€ )に置き換えられました。[1]
- IBM CP859 にはISO/IEC 8859-15に含まれるすべての印刷可能な文字が含まれているため、CP850とは異なり、ユーロ記号、エストニア語、フィンランド語、フランス語がサポートされます。
- IBM コード ページ 037、500、および 1047 は、すべてのISO-8859-1文字を含むEBCDICエンコードです。
- Mac OS Roman文字セット ( MacRomanとも呼ばれ、IANAでは単に MACINTOSH とも呼ばれる)には、ISO/IEC 8859-1と同じ文字のほとんど (すべてではない)が含まれていますが、配列が大きく異なります。また、多くの技術文字や数学文字(ただし、重要な乗算記号×はありません) とさらに多くの発音区別記号が追加されています。古いMacintosh Web ブラウザは、Web サイトのテキストを編集するときに、 ISO/IEC 8859-1にあるがネイティブのMacintosh文字セットにはないいくつかの文字を変更することが知られています。逆に、古い Macintosh で作成された Web 資料では、他のオペレーティング システムで読み取ると多くの文字が正しく表示されませんでした。この問題を解決するために、 Kermit (プロトコル)の作成者によって、Mac OS Roman を ISO/IEC 8859-1 をサポートするように変更した Macintosh Latinエンコーディングが作成されました。
歴史
以前の 7ビットの米国標準情報交換コード(ASCII) エンコードには、英語、ラテン語、マレー語、スワヒリ語など、いくつかの言語を適切に表現するのに十分な文字しかありません。他のラテン アルファベット言語で使用される一部の文字と文字と発音区別符号の組み合わせが欠けています。ただし、米国が提供するほとんどのコンピュータ プラットフォームでは他に選択肢がなかったため、国内のコンピュータ産業が強い場合を除き、ASCII の使用は避けられませんでした。ASCIIの記号の一部をローカル文字に置き換えるISO 646エンコード グループがありましたが、スペースが非常に限られており、置き換えられた記号の中にはプログラミング言語などで非常に一般的なものもありました。
ほとんどのコンピュータは内部的に 8 ビット バイトを使用していましたが、通信 (本質的に信頼性が低いと見なされていました) では 7 つのデータ ビットと 1 つのパリティ ビットが使用されていました。やがて、8 ビットすべてをデータに使用することが一般的になり、さらに 128 文字分のスペースが確保されました。初期の頃は、これらのほとんどはシステム固有のものでしたが、徐々にISO/IEC 8859標準が登場し、クロスプラットフォームの類似性を提供して情報の交換を可能にしました。
20 世紀末にストレージとメモリのコストが下がると、特定の 8 ビット コード (ISO-Latin コード セットだけでも 7 つあります) の複数の意味に関連する問題は正当化されなくなりました。すべての主要なオペレーティング システムは、主要な内部表現としてUnicodeに移行しました。ただし、Windows はUnicode をエンコードするUTF-8方式をサポートしていなかったため( UTF-16 を優先)、多くのアプリケーションは引き続きこれらのレガシー文字セットに制限されていました。
ユーロ記号
ユーロとそれに関連するユーロ記号( € ) の導入により、コンピュータ システム開発者はこの新しい記号をサポートするよう大きなプレッシャーを受け、ほとんどの 8 ビット文字セットを何らかの方法で適応させる必要がありました。
- Apple 社は MacRoman で、Sun Microsystems 社はSolaris OSで、汎用通貨記号( ¤ )を単純に置き換えました。組織がコード ポイントを会社のロゴなど他の用途に使用していたため、一部の場所では問題が発生しました。
- ISO は ISO 8859 のさらなる変種であるISO 8859-15を導入しました。これは、一般的な通貨記号をユーロ記号に置き換え、その他の記号を発音区別記号付きの文字に置き換えたものです。ISO 8859-15 は広く採用されることはありませんでした。
- Windows-1252では、Microsoft はユーロ記号を既存のC1 制御コードのギャップ (位置 80 16 進数)に配置しましたが、これは他のベンダーがアーキテクチャに反する決定であるとみなしました。
これらの決定は、単一のコンピューター内(または少なくとも単一のベンダーの「デジタル エコシステム」内)でのみ使用されるドキュメントに対しては限定的な影響しか及ぼしませんでしたが、ユーロ記号を含むドキュメントは、エコシステム間で交換されると期待どおりにレンダリングされないことを意味しました。
オペレーティング システムがアップグレードされ、ユーロ記号を U+20AC (10 進数 8364) でエンコードする Unicode を標準でサポートするようになったため、これらの問題はすべて解決されました。
比較表
コード ポイントU+ 0000から U+007F は、ここにリストされているすべての文字セットに直接マッピングされているため、現在この表には表示されていません。ASCIIコーディング標準では、最初の 0 から 127 までの文字のマッピングの元の仕様が定義されています。
表はUnicodeコード ポイント別に並べられています。ここでは文字セットは大文字のIANA名で参照されます。
- IBM コード ページのマッピングは、Microsoftが提供するUnicodeサイトからのものです。[引用が必要] Unicode コンソーシアムのドキュメントには、これらのコード ページに対する IBM と Microsoft のマッピングの違いを示すソースへのリンクがあります。[4]
- IBM437 および IBM850 は、制御コード範囲の印刷可能な文字を定義しました。これらの文字は画面に到達する前にトラップされるため、 DOS経由でテキストを印刷するときには使用できませんでしたが、画面メモリを直接使用するアプリケーションでは使用できました。
- Macintosh には 0xF0 に Apple ロゴ⟨⟩があり、 Unicode の私用領域では U+F8FF に変換されます。
注記
- ^ 1998年にリリースされたIBMのPC DOS 2000は、コードページ850の定義を、新しいコードページ858のサポートを追加する代わりに、コードポイント213にユーロ記号が含まれるようになった修正コードページ850に変更した。この理由は、MS-DOS / PC DOSでのコードページ切り替えロジックの実装における既存の制限によるものであった可能性がある。この制限では、 .CPI ファイルのサイズは64KB、コードページは最大で約6つに制限されていたが、この制限は、一部のOEMバージョンのMS-DOSやWindows NTでは回避されており、 DR-DOSにも存在しない。さらに、 MS-DOS/PC DOS のパーサーは、COUNTRY.SYS ファイル内の可能な国/コードページエントリの数を最大146または438に制限しているが、この制限はDR-DOSには存在しない。したがって、コード ページ 858 のサポートを追加すると、同時に別のコード ページ (コード ページ 850 など) も削除される可能性がありますが、一部のアプリケーションがコード ページ 850 を使用するようにハード ワイヤードされていたことを考えると、当時は実行可能なソリューションではなかった可能性があります。
参考文献
- ^ "00858". CPGIDによるコードページ。IBM 。2016年6月6日時点のオリジナルよりアーカイブ。2016年6月6日閲覧。
- ^ Paul, Matthias R. (2001-08-15). 「FreeDOS のコードページの変更」(fd-dev の投稿 [1] に基づく技術設計仕様)。2016-06-06 にオリジナルからアーカイブ。2016-06-06に取得。
多言語「EURO SIGN 付きコードページ 850」の新しい公式 ID は 850 ではなく 858 です。IBM は、今後の製品では 850 バリアントではなく 858 を使用するように切り替えます。[...] PC DOS 2000 の EGAx.CPI、COUNTRY.SYS、および KEYBOARD.SYS ファイルに 858 を追加しなかった理由は推測するしか
あり
ませ
ん
。
多くのサードパーティ アプリケーションは 850 で動作するように設計されており、PC DOS 2000 がリリースされた時点では 858 については認識していなかったため、誰にとっても簡単ですが、残念ながら互換性はありません。[...] 上で説明したように、DOS の欧米版では、COUNTRY.SYS と KEYBOARD.SYS には特定の国に対するコード ページ エントリが 2 つしか含まれていません。(アラビア語版とヘブライ語版では、1 つの国に対して最大 8 つのコード ページを使用できますが、理論上は、許可されているコード ページの範囲 1..65534 より下には制限はありません)。[...] 問題は、850 のサポートを削除すると、850 を使用するようにハード ワイヤードされているアプリケーションで互換性の問題が発生する可能性があることです。すべてのファイルに 3 番目の選択肢として 858 を追加すると、ファイルとテーブルのサイズが大幅に増加します。MS-DOS/PC DOS
IO.SYS
/
IBMBIO.COM
の COUNTRY.SYS ファイル パーサーは、すべての情報をロードするために 6 Kb (DOS 6 用) のスクラッチパッドを確保します。これにより、COUNTRY.SYS ファイルの最大 438 エントリが受け入れられるようになります。そうでない場合は、「COUNTRY.SYS が大きすぎます」というメッセージが表示されます。NLSFUNC パーサーにはこの制限はなく、DR-DOS のファイル パーサー (カーネルと NLSFUNC) もこのような制限を認識しません。MS-DOS/PC DOS の古いバージョンでは、最大 146 エントリに対して 2 Kb のバッファーさえありました。
{{cite web}}:外部リンク(ヘルプ)|type= - ^ Paul, Matthias R. (2001-08-27). 「FreeDOS でのコードページの変更 (続編)」。2014-10-01 にオリジナルからアーカイブ。2013-05-08に取得。
[...] 従来の FONT スタイルでカスタム .CPI ファイルを簡単に作成することもできますが、MS-DOS/PC DOS で使用できる場合、そのようなファイルには最大 6 つのコードページしか保存できません (一部の OEM の問題と NT は 64 Kb を超えるファイルを処理できますが、MS-DOS/PC DOS は処理できません)。
- ^ 「IBM 変換マッピング テーブル」。Unicode コンソーシアム。
