ISO-8859-3(Latin-3)とは?概要・対象言語・実務での使い方とUnicode移行ガイド
ISO-8859-3 とは — 概要と歴史
ISO-8859-3(別名 Latin-3)は、1989年に策定された ISO/IEC 8859 シリーズの一つで、1バイト(8ビット)文字エンコーディングの標準仕様です。ASCII(7ビット)を拡張し、0xA0–0xFF の領域に欧州系言語で使われる追加文字を割り当てる構成を取ります。ISO-8859 シリーズの各編は地域や言語群ごとの文字ニーズに応じて設計されており、ISO-8859-3 は「南欧(South European)」や「Latin-3」として知られ、特にマルタ語(Maltese)やエスペラント(Esperanto)などを主な対象にして設計されました。
ISO-8859-3 がカバーする言語と文字
ISO-8859-3 は主に以下のような言語をサポートすることを目的として作られました。
- マルタ語(Maltese) — Ġ ġ(Gの点付き)やĦ ħ(Hの横棒)など、固有の文字を含む。
- エスペラント(Esperanto) — ĉ ĝ ĥ ĵ ŝ ŭ といったサーカムフレックスやブレーヴの付いた文字を含む。
- その他の南欧系文字や、ラテン拡張が必要な一部の少数言語。
設計当初はトルコ語(Turkish)向けの要素も一部取り込まれていましたが、トルコ語には後に ISO-8859-9(Latin-5)がより適した配列として採用され、実務上はそちらが主流になりました。
技術的な特徴
- 単一バイト(8ビット)エンコーディング:各バイトが1文字を表すため扱いが単純で、古いシステムや通信プロトコルで使いやすい。
- ASCIIとの互換性:0x00–0x7F は ASCII と同一であり、既存の英字テキストと互換性がある。
- 0xA0–0xFF の領域に追加文字を割り当て:ラテン系の補助文字を配置することで、対象言語を表記可能にする。
- IANA 登録名:一般に "ISO-8859-3" が正式名として使われ、"latin3" などの別名がある。
ISO-8859-3 と他のエンコーディングとの違い
ISO-8859 シリーズは各地域向けに設計されているため、同じ 0xA0–0xFF の範囲でも各版で割当が異なります。代表的なものとしては:
- ISO-8859-1(Latin-1): 西欧言語向け。多くの西欧文字をカバーするためウェブ初期に広く使われた。
- ISO-8859-2(Latin-2): 中央・東欧言語向け。ポーランド語やチェコ語、ハンガリー語など。
- ISO-8859-3(Latin-3): マルタ語やエスペラントなど南欧系一部言語向け。
- ISO-8859-4(Latin-4): バルト諸語向け。
- ISO-8859-9(Latin-5): トルコ語向け(ISO-8859-1 の一部文字をトルコ語の文字に置換)。
結果として、同名のラテン文字でもどの ISO-8859 系を使うかによってバイト値の意味が変わるため、文書や通信でエンコーディング情報を正確に指定することが重要です。
実務上の利用と移行(Unicode への流れ)
1990年代から 2000年代にかけて、ISO-8859 系は多くのレガシー環境で使われましたが、グローバル化と多言語対応の必要性から Unicode(特に UTF-8)が次第に標準になりました。Unicode は膨大な文字集合を一貫した符号化で提供するため、複数言語を混在させるウェブやアプリケーションでは UTF-8 に移行する利点が大きいです。
そのため、ISO-8859-3 の実際の利用は現在では限定的です。マルタ語やエスペラントの古い文書やレガシーシステムでは残存する可能性がありますが、新規のシステムやウェブコンテンツでは UTF-8 を使うのが一般的です。
ウェブでの取り扱い(MIME・HTML・HTTP)
ウェブで ISO-8859-3 を使う場合、正しく表示させるためには MIME ヘッダや HTML の meta 要素、HTTP ヘッダでエンコーディングを明示する必要があります。例:
- HTTP ヘッダ: Content-Type: text/html; charset=ISO-8859-3
- HTML 内: <meta charset="ISO-8859-3"> または従来の形式 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-3">
ただし、現代のブラウザや環境ではデフォルトで UTF-8 を想定することが多いため、ISO-8859-3 指定のページは文字化けのリスクが高くなります。可能ならば UTF-8 へ変換して配信することを推奨します。
相互運用性とよくある問題
- 文字化け(mojibake):ISO-8859-3 でエンコードされたバイト列を UTF-8 等別のエンコーディングとして誤解釈すると文字化けが起きる。
- 欠落文字:対象外の言語(例:カタカナや漢字)を扱うことはできないため、多言語混在では不向き。
- エディタやフォントの対応:古いエンコードを正しく表示するためには対応するフォントやエディタの設定が必要。
WordPressでの扱いについて
WordPress のような現代的な CMS ではデフォルトで UTF-8 を採用しており、データベースやテーマ、プラグインも UTF-8 前提で設計されています。既存の ISO-8859-3 エンコードのコンテンツを WordPress に移行する場合、事前に UTF-8 に変換して取り込むのが最も安全です。変換は iconv や nkf、もしくはエディタやスクリプトで実行できます。
変換時の注意点:
- 正しい元エンコーディング(ISO-8859-3)を指定して変換すること。
- 改行コードや BOM(Byte Order Mark)の有無を確認すること。
- データベースの文字セットと照合順序(collation)を UTF8MB4 に合わせること。
Unicode とのマッピングと互換性
ISO-8859-3 の各バイト値は Unicode のコードポイントへ一義にマッピングできます。Unicode の公開マッピングファイル(Unicode.org の ISO8859/8859-3.TXT など)により、既存文書を確実に UTF-8 に変換できます。マッピングは 1:1 の単純な置換で行えるため、理論的には完全に変換可能ですが、元データが混在エンコーディングで曖昧な場合は注意が必要です。
いつ ISO-8859-3 を使うべきか
- 既に ISO-8859-3 で保存されたレガシー資料やアーカイブをそのまま扱う必要がある場合。
- 非常に限定された組み込みシステムや古い通信プロトコルで ISO-8859-3 が仕様として定められている場合。
ただし、新規コンテンツやウェブサービスを構築する場合は、互換性と国際化の観点から UTF-8 の採用を強く推奨します。
まとめ
ISO-8859-3(Latin-3)は、マルタ語やエスペラントなど特定の南欧系言語をサポートするために設計された 8ビット文字エンコーディングです。歴史的には重要ですが、現代の多言語環境では Unicode(UTF-8)への移行が進んでおり、新規利用は限定的です。既存の ISO-8859-3 文書を扱う際は、正しいエンコーディング指定と Unicode への変換を慎重に行うことが鍵となります。
参考文献
- ISO/IEC 8859-3 — Wikipedia
- Unicode Consortium — Mapping file for ISO 8859-3
- IANA — Character Sets (登録一覧。ISO-8859-3 のエントリを含む)
- RFC 1345 — Character Mnemonics and Character Sets (参考資料)


