コンピュータが文字を処理するための仕組みである文字エンコーディングにおいて、ISO/IEC 8859は歴史的に重要な役割を果たしてきました。これは、基本的な英語文字を定義したASCII(アスキー)を拡張し、ヨーロッパ各国の言語やその他の文字を表現するために設計された8ビットの文字セット規格です。
かつては世界中で広く利用されていましたが、現在はほぼすべての文字を単一の規格で扱えるUnicode(ユニコード)へと移行しています。本記事では、この規格の構造や各パートの詳細、そして現代の文字コード体系へのつながりについて解説します。
Key Facts
- ASCIIの拡張版: 7ビットのASCIIをベースに、上位1ビットを利用して最大256文字を定義する8ビット規格である。
- 地域別パート構成: 西欧、中欧、北欧、キリル文字、アラビア文字など、言語圏ごとに複数のパートに分かれている。
- ECMAとの関係: 多くのパートがECMA Internationalの標準(ECMA-94など)に基づいている。
- 後継規格: 現在は、世界中の文字を包括的にカバーするISO/IEC 10646(Unicode)に継承されている。
ISO/IEC 8859の構造と役割
ISO/IEC 8859は、単一の巨大な文字セットではなく、用途や地域に合わせた「パート」形式で構成されています。これにより、限られた8ビット(256通り)の容量の中で、特定の言語に必要な特殊文字を効率的に割り当てることが可能となりました。
例えば、最も普及した「Part 1 (Latin-1)」は西欧言語をカバーしていますが、東欧の言語を扱うには「Part 2 (Latin-2)」に切り替える必要がありました。このような仕組みは、メモリ容量が極めて限定的だった時代の最適解でしたが、異なるパート間で作成された文書を混ぜて表示すると文字化けが発生するという課題もありました。
主要なパートの一覧
以下に、ISO/IEC 8859で定義されている主な文字セットとその対象地域をまとめます。
| パート | 名称 | 主な対象地域・言語 | 備考 |
|---|---|---|---|
| Part 1 | Latin-1 | 西欧諸国 | 最も一般的。後にユーロ記号等を追加したPart 15へ発展。 |
| Part 2 | Latin-2 | 中欧諸国 | ポーランド語やチェコ語などをカバー。 |
| Part 3 | Latin-3 | 南欧諸国 | マルタ語やエスペラント語など。 |
| Part 4 | Latin-4 | 北欧諸国 | 北欧地域の言語に対応。 |
| Part 5 | Latin/Cyrillic | キリル文字圏 | ロシア語などのキリル文字をサポート。 |
| Part 6 | Latin/Arabic | アラビア文字圏 | アラビア語に対応。 |
| Part 7 | Latin/Greek | ギリシャ文字圏 | ギリシャ語に対応。 |
| Part 8 | Latin/Hebrew | ヘブライ文字圏 | ヘブライ語に対応。 |
| Part 11 | Latin/Thai | タイ語圏 | TIS-620規格に基づいたタイ文字。 |
| Part 15 | Latin-9 | 新西欧諸国 | Part 1をベースにユーロ記号などを追加。 |
技術的な詳細と文字割り当て
ISO/IEC 8859の各文字は、2進数、8進数、10進数、および16進数のコードポイントで管理されています。0から127まではASCIIと完全に互換性があり、160(16進数でA0)から255(FF)までの範囲に、各パート固有の特殊文字や記号が割り当てられています。
例えば、16進数の「A0」は多くのパートで「改行しないスペース(NBSP)」として定義されており、一方で「A1」以降の文字は、使用するパート(Latin-1かLatin-2かなど)によって、全く異なる文字(例:¡ や Ą)として解釈されます。これが、エンコーディングの指定を誤ると文字化けが起こる根本的な原因です。
Unicodeへの移行と現状
インターネットの普及に伴い、単一の文書内で世界中のあらゆる言語を同時に表示させる必要性が高まりました。ISO/IEC 8859のような「地域別切り替え方式」では限界があったため、すべての文字に固有の番号を割り当てるISO/IEC 10646、およびUnicodeが開発されました。
現在では、UTF-8などのUnicodeベースのエンコーディングが標準となっており、ISO/IEC 8859はレガシーシステムや特定の古いデータ形式を扱う場合を除き、新規の開発で採用されることはほとんどありません。
Frequently Asked Questions
ISO/IEC 8859とASCIIは何が違うのですか?
ASCIIは7ビットの規格で128文字までしか表現できませんが、ISO/IEC 8859はそれを8ビットに拡張し、最大256文字まで表現できるようにしたものです。ASCIIに含まれる文字はすべてISO/IEC 8859でもそのまま利用可能です。
なぜ複数の「パート」に分かれているのですか?
8ビットでは最大256文字しか定義できないため、世界中のすべての言語を一度に盛り込むことが不可能だったからです。そのため、地域ごとに必要な文字セットを分けた「パート制」が採用されました。
ISO/IEC 8859-1と8859-15の違いは何ですか?
ISO/IEC 8859-15は、8859-1(Latin-1)の改良版です。主な変更点は、通貨記号であるユーロ記号(€)や、一部の不足していた文字(大文字のŸなど)が追加されたことです。
現代のウェブサイトでこの規格は使われていますか?
ほとんど使われていません。現代のウェブ標準はUTF-8(Unicode)であり、世界中の文字を一つのコード体系で扱えるため、地域ごとに規格を使い分ける必要がなくなったためです。
文字化けが起こるのはなぜですか?
例えば、ISO/IEC 8859-2(中欧)で書かれたファイルを、コンピュータがISO/IEC 8859-1(西欧)として読み込んだ場合、同じコード番号でも割り当てられている文字が異なるため、意図しない文字が表示されてしまいます。
References
- Missing several accented vowels including and ǿ. These can be replaced with non-accented vowels at the cost of increased ambiguity.
- The ISO 8859 encodings treat as a digraph. Some other encodings treat it as a letter.
- Missing characters are in ISO/IEC 8859-15.
- The 1985 edition includes only a version of ISO-8859-1.
- The 1986 edition defines , which is an entirely different encoding.
- 8859-5 misses the letter, which was reintroduced into the in 1990.
- Published 1995, registered 1996.