nmz/codeconv.c(get_external_charset) について
2006-08-25


nmz/codeconv.c にローカル関数 get_external_charset() を用意しました。 nmz_get_lang() の値から、外部キャラセット文字列を生成します。 文字列はキャッシュされており、nmz_get_lang() の値に変化がなけれ前回と同じ文字列を返します。 nmz_get_lang() の値がサポート外の場合は、NULL を返します。

get_external_charset() は nmz_codeconv_external() から呼び出し、UTF-8 から外部コードへの変換に利用します。

サポートしているキャラセットは、"UTF-8", "EUC-JP", "Shift_JIS", "ISO-2022-JP", "ISO-8859-1", "ISO-8859-2", "ISO-8859-15" です。 ただし、"EUC-JP", "Shift_JIS", "ISO-2022-JP" 以外は、従来の英語、フランス語、ドイツ語、スペイン語、ポーランド語をサポートするための限定されたものです。 また、"UTF-8" はコード変換をしないことを意味します。

従来は US-ASCII 前提の英語を他の国の言語と同様に扱いました。 これは、英語だけが ISO-8859-* を扱えないのも不自然なためです。 とは言え、全ての環境で利用できる US-ASCII がないのも不便です。 "en" の扱いを変えて、US-ASCII の "C" と分ける等考えないといけないのかもしれません。 メッセージカタログと合わせて今後検討していきたいと思います。

なお、これらの修正は HEAD に対して行いましたが、development-2-1 にも評価用に廉価版の get_external_charset() を導入しました。

[開発]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット