ISO-8859-3(Latin-3)とは何か?マルタ語・エスペラント対応の8ビット文字エンコーディングとUnicode移行ガイド
ISO-8859-3 とは
ISO-8859-3(別名 Latin-3)は、ISO/IEC 8859 シリーズの一部である 8 ビット単位の文字エンコーディング(単一バイト文字集合)です。ASCII の上位 128 値(0x80–0xFF)を拡張して、ラテン系言語の一部で必要になる追加文字を収容する目的で設計されました。ISO-8859 シリーズは複数の“Latin-n”に分かれており、それぞれ異なる地域言語群の文字をカバーします。ISO-8859-3 はラテン文字の第3群(Latin-3)に相当し、特にマルタ語やエスペラントのような言語で使われる特殊文字を含む点が特徴です。
設計目的と対象言語
ISO-8859-3 は、主に以下のような言語を想定して設計されました。
- マルタ語(Maltese) — ġ(g 点付き)や ċ(c 点付き)や ħ(h 切断)など、マルタ固有の字が含まれる。
- エスペラント(Esperanto) — ĉ, ĝ, ĥ, ĵ, ŝ, ŭ といったエスペラント固有の濁音・半母音記号が含まれる。
- その他、一部の南ヨーロッパ系や計算機文書で必要になる拡張ラテン文字。
注意点として、トルコ語や中欧諸語の完全なサポートは意図されていません。トルコ語向けには、後に ISO-8859-9(Latin-5)が作られています。
文字配列の特徴
ISO-8859-3 は 0x00–0x7F を US-ASCII と共通にし、0xA0–0xFF の領域に補助文字を割り当てます。重要な点を挙げると:
- 0xA0 はノーブレークスペース(NO-BREAK SPACE)。0xAD はソフトハイフン(SOFT HYPHEN)等、一般的な制御・特殊記号が含まれる。
- マルタ語・エスペラント固有の拡張文字が上位領域に割り当てられている(例:Ġ U+0120、ċ U+010B、Ħ U+0126、ĉ U+0109、ĝ U+011D 等)。
- 一部の位置には ISO-8859-1(Latin-1)とは異なる文字が割り当てられているため、Latin-1 と単純に互換ではない箇所がある。
正確なバイト値と Unicode コードポイントの対応表(マッピング)は公開されており、プラットフォーム間での相互変換にはそのマッピング表を使います。
実装とプラットフォームでの扱い
ISO-8859-3 は一時期いくつかのシステムやアプリケーションでサポートされました。IANA(インターネット番号割当局)の文字セット登録でも "ISO-8859-3" が識別子として用いられます。Microsoft のコードページでは cp28593(Windows-28593)として扱われることがあります。
ただし、実運用レベルでは ISO-8859-3 の使用頻度は非常に低く、Web 上や国際的な文書交換における存在感は限定的です。エスペラントやマルタ語の文書も、Unicode(特に UTF-8)の普及により徐々に Unicode ベースに移行しました。
Web と MIME での指定方法
HTTP やメールで文字エンコーディングを指定するには Content-Type ヘッダで charset=ISO-8859-3 を用います(例:Content-Type: text/html; charset=ISO-8859-3)。HTML の タグでも同様に指定可能です。ただし、今日の Web では UTF-8 が事実上の標準になっているため、新規コンテンツでは UTF-8 指定を推奨します。
Unicode との関係(移行と相互変換)
ISO-8859-3 の各バイト値は対応する Unicode のコードポイントへ一対一でマッピングできます。Unicode の包括的な文字集合は ISO-8859-3 がカバーする文字をすべて含んでいるため、変換時に情報落ちが起きることは通常ありません(ただし、エンコーディングの誤指定や破損したバイト列があると文字化けが起きます)。
現在ではエスペラントやマルタ語の文書作成では UTF-8 が推奨され、ISO-8859-3 はレガシーデータ(古いメールアーカイブや文書、組み込み機器の設定ファイル等)の扱いでのみ必要になるケースが多いです。レガシー文書を現代的に扱う場合は、正しいエンコーディングを判定して Unicode に変換することが重要です。
実務上の注意点・問題点
- 混在による文字化け:ソースが ISO-8859-3 であるのに UTF-8 と解釈されると文字化けが発生する。逆も同様。
- 限定されたカバー範囲:非常に限られた言語群向けのため、多言語対応の必要がある現代アプリケーションでは不便。
- 互換性:Latin-1(ISO-8859-1)とは一部の文字が異なるため、Latin-1 と混同して扱うと誤表示が起きる。
- 既存ツールの対応:一部の古いソフトや組み込み機器でのみ native に扱われることがあり、現行のライブラリやツールでは UTF-8 前提のことが多い。
具体例(バイト列 → 表示)
例えば、エスペラントの "ĉ"(小文字 c にくさび)は ISO-8859-3 の特定バイトに割り当てられており、そのバイトを正しく ISO-8859-3 として解釈すれば対応する Unicode(U+0109)に変換され正しく表示されます。逆に、そのバイト列を UTF-8 と誤判定すると全く異なる文字列に見えます。実際のマッピング表は Unicode コンソーシアムや IANA が公開しています。
いつ使うべきか/いつやめるべきか
- 使うべきケース:既存のレガシーデータの変換や、古いシステムと互換性を保つ必要がある場合に限られる。
- やめるべきケース:新規開発、マルチリンガル対応、Web サイトや API の国際化など、将来性を考えるなら UTF-8 を選ぶべき。
まとめ
ISO-8859-3(Latin-3)は、マルタ語やエスペラントなど特定言語のために設計された 8 ビットの単一バイト文字集合です。かつてはこれらの言語を扱う場面で一定の役割を果たしましたが、Unicode(特に UTF-8)の普及により実運用での重要性は低下しています。現在は主にレガシーデータの取り扱いや互換性維持のために知識として押さえておくべきエンコーディングです。
参考文献
- ISO/IEC 8859-3 — Wikipedia
- IANA Character Sets — Internet Assigned Numbers Authority (一覧から ISO-8859-3 を参照できます)
- ISO-8859-3 to Unicode Mapping — Unicode Consortium


