トップ > 技術メモ (ソフトウェア開発) > 文字コード・国際化 >

異なる文字コードのテキストを混在させるには

2005.4.2 新規公開。1999.3.15の日記を加筆。

ISO 8859文字コード

もはや話は古くなるが、ユーロを表す文字を導入するために、ISO 8859-1に含まれる文字をいくつか入れ替えて、ISO 8859-15が作られた。FIELD OF UTILIZATION には、the EURO SIGN and provides support for the French, and Finnish languages in addition. とある。Finnish はフィンランド語ですか。サポートされる言語は、デンマーク語、ドイツ語、英語、スペイン語、フィンランド語、フランス語、アイスランド語、イタリア語、オランダ語、ノルウェー語、ポルトガル語、スウェーデン語。

追加された文字は、ユーロ記号と、CARON付きアルファベットが何文字か。CARON付きアルファベットは、8859-2, 8859-4にも入っている。

コード名前Unicode
A4 EURO SIGN U+20AC
A6 LATIN CAPITAL LETTER S WITH CARON U+0160
A8 LATIN SMALL LETTER S WITH CARON U+0161
B4 LATIN CAPITAL LETTER Z WITH CARON U+017D
B8 LATIN SMALL LETTER Z WITH CARON U+017E
BC LATIN CAPITAL LIGATURE OE U+0152
BD LATIN SMALL LIGATURE OE U+0153
BE LATIN CAPITAL LETTER Y WITH DIAERESIS U+0178

ところで、ISO/IEC 8859 Information technology -- 8-bit single-byte coded graphic character sets -- は、複数の分冊からなっていて(マルチパート)、その一覧は次のとおり。

複数の文字コードに対応する

さて、これら複数の文字コードをサポートするようなプログラムを書く場合、どうするか。

これらの文字コードに含まれる文字(文字集合)は、どれも異なっている。また、複数の文字コードに含まれる文字も多い。

次の方針があるだろう。

  1. 入出力の段階で、複数の文字コードの文字集合をすべて含むスーパーセットに変換する
  2. テキストに文字コード情報を付与する

前者は、たとえばUnicodeに変換してしまって、プログラム内部ではUnicodeのみを扱うようにする。それぞれの文字コードの文字集合が小さく、かつ一致していない状況では、この方針がいいと思う。

日本で使われるシフトJIS / EUC-JP / ISO-2022-JPは、文字集合が基本的に同じなので、やはりプログラム内部でどれか(シフトJISまたはEUC-JP)に変換してしまう方法がよく使われる。

round-trip conversionは確保できるのか、正規化してもいいのか、などに注意が必要。

文字コード付きテキスト

サポートしたい文字コードの文字がうまくUnicodeに載らない場合は、テキストに文字コード情報を付けることになる。

この場合は、同じ文字が複数のコードポイントで表現されることがあるので、検索などで、うまく文字を同一視するようにする必要がある。

リンク

International Register of Coded Character Sets
文字集合の登録簿

トップ > 技術メモ (ソフトウェア開発) > 文字コード・国際化 > 異なる文字コードのテキストを混在させるには
このページについてのご感想・ご提案などをお寄せください。なお、コメントに「http:」、HTML aタグが含まれると送信されません。
評価: ◎ ← → ×
コメント:
お名前:
メールアドレス:
[Profile]  [Privacy Policy]  [Legal & Link]  [Site Map]  

banner Netsphere Laboratories http://www.nslabs.jp/

Copyright (c) HORIKAWA Hisashi. All rights reserved.

[PR]

はてなブックマークに追加  

サイト内検索:

[PR]