ISO-8859-3(Latin-3)入門:南欧言語向け8ビット文字エンコーディングの歴史とUnicode変換
ISO-8859-3 とは — 概要
ISO-8859-3(別名 Latin-3、South European)は、ASCII(0x00–0x7F)を基礎にした 8 ビット単位の文字エンコーディングの一つで、ISO/IEC 8859 シリーズに含まれます。ASCII で表現できない上位 128 バイト(0xA0–0xFF)に、南欧や特定の言語で使う文字を割り当てたもので、主にマルタ語(Maltese)やエスペラント(Esperanto)などに対応するために設計されました。
歴史的背景と設計目的
1980年代から 1990年代にかけて、パソコンやネットワークが普及した一方で、各国語の特殊文字を扱う手段はまだ統一されていませんでした。ISO/IEC 8859 シリーズはこの課題に対応するため、地域や言語ごとに必要な拡張文字をまとめた複数の 8 ビットエンコーディングを定義しました。ISO-8859-3 はそのうち「南ヨーロッパ向け」の集合として位置づけられ、特にマルタ語やエスペラントに必要な文字をサポートすることを目的として作られました。
文字セットの特徴(技術的詳細)
- 1バイト単位(8ビット)の単一バイト文字集合。0x00–0x7F は ASCII と互換。
- 0xA0–0xFF の範囲に、ノーブレイクスペースやアクセント付きラテン文字などを配置。
- Unicode へのマッピングが定義されており、Unicode のコードポイントと 1 対 1 で変換可能(ただし拡張文字は Unicode に対応する順序にマップされる)。
- IANA 登録名は "ISO-8859-3"、Microsoft のコードページ番号は 28593(Windows での識別番号)。
どの言語に対応しているか
ISO-8859-3 は特に次のような言語を対象としていました。
- マルタ語(Maltese): ħ(h の横棒)や Ġ/ġ(dot 上の G)など、マルタ語固有の文字を含む。
- エスペラント(Esperanto): ĉ, ĝ, ĥ, ĵ, ŝ, ŭ といったエスペラント特有の文字に対応。
- その他の南欧言語や一部のローカルな用例に利用されることがあった。
ただし、トルコ語(Turkish)は当初検討対象の一つだったものの、最終的には ISO-8859-9(Latin-5)がトルコ語向けの標準として採用され、トルコ語は ISO-8859-3 では広く扱われません。
実務上のマッピングと互換性
ISO-8859-3 の各バイトには対応する Unicode のコードポイントが定義されています。これによって、ISO-8859-3 のファイルを UTF-8(Unicode)へ変換することが可能です。一般的な変換ツールやライブラリ(iconv、Python の codecs/encode/decode など)は ISO-8859-3 の変換をサポートしています。
例(コマンドラインでの変換):
- iconv を使う場合: iconv -f ISO-8859-3 -t UTF-8 input.txt -o output.txt
- Python(読み込み時にデコード): open('f.txt', encoding='iso-8859-3')
採用状況と現在の位置づけ
ISO-8859-3 は特定の用途では使われましたが、ISO-8859 シリーズ全般に言えることとして、言語カバーの分断が問題となり広範な採用には至りませんでした。特にインターネットがグローバル化する中で、単一のエンコーディングで多言語を扱える Unicode(UTF-8)への移行が進み、ISO-8859-3 の使用は限定的になっています。
今日ではほとんどのウェブサイトや CMS(例: WordPress)は UTF-8(しばしば UTF-8 (with BOM ではない) か UTF-8MB4)を標準としており、新規コンテンツで ISO-8859-3 を選ぶ理由はほとんどありません。ただし、古い文書やレガシーシステム、データ移行の場面で遭遇することがあります。
WordPress と古い ISO-8859-3 コンテンツの扱い
- WordPress はデフォルトで UTF-8 を使用します。ISO-8859-3 で書かれた古い記事やデータを WordPress に取り込む場合は、事前に UTF-8 に変換してからインポートするのが安全です。
- 変換を行わずにそのまま貼り付けると、特殊文字が?や別の文字に化ける(文字化け)ことがあります。
- 変換方法: iconv や nkf(日本語環境での変換ツールだが、エンコーディング指定が可能)や、テキストエディタで文字コードを指定して保存することが一般的です。
トラブルシューティングのポイント
- 「文字化け」が起きたら: 元ファイルの実際のエンコーディングが本当に ISO-8859-3 であるか確認する。誤認識で別の ISO-8859 系や Windows-125x 系が使われている場合がある。
- 変換後に別の文字が欠落する場合: 元のファイルに当該文字が正しく格納されているか(バイナリ破損など)確認する。
- Web での表示が崩れる場合: HTML のメタタグや HTTP ヘッダで charset 指定が正しいか確認。例: <meta charset="ISO-8859-3">(しかし現代的には UTF-8 に統一することを推奨)。
まとめ
ISO-8859-3(Latin-3)は、マルタ語やエスペラントなど特定言語の文字をサポートするために設計された 8 ビット文字エンコーディングです。かつては地域・言語ごとに多数のエンコーディングが使われていましたが、現在は Unicode(UTF-8)が事実上の標準になっています。レガシーデータや古いシステムで ISO-8859-3 に出会うことはあり得るため、その特徴や変換方法(iconv、エディタ、プログラム側のデコード指定)を知っておくことは現場で役立ちます。
参考文献
- ISO/IEC 8859-3 — Wikipedia
- IANA Character Sets (登録一覧)
- Unicode Consortium — ISO-8859-3 to Unicode マッピング(公式マッピングファイル)
- Microsoft — Code Page Identifiers(参照用、CP28593 等の一覧)


