2006年8月25日

[Namazu-devel-ja 1170] nmz/codeconv.c(get_external_charset) について

寺西です。

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" はコード変換をしないことを意味します。

- "*.utf8" は UTF-8 として扱います。
- "*.ISO-2022-JP", "*.ISO2022JP" は ISO-2022-JP として扱います。
- "*.ISO-8859-1", "*.ISO88591" は ISO-8859-1 として扱います。同様に
ISO-8859-2, ISO-8859-15 に対応します。
- 上記のような接尾語が付かない場合、
"ja_*" は EUC-JP, "en_*", "fr_*", "de_*", "es_*" は ISO-8859-1,
"pl_*" は ISO-8859-2 として扱います。
- "french", "deutsch", "german", "spanish" は ISO-8859-1,
"polish" は ISO-8859-2 として扱いますが、"german", "spanish",
"polish" はメッセージカタログの方は対応していないので、暫定状態
です。

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

なお、これらの修正は HEAD に対して行いましたが、development-2-1 にも
評価用に廉価版の get_external_charset() を導入しました。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E

_______________________________________________
Namazu-devel-ja mailing list
Namazu-devel-ja@xxxxx
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-devel-ja

投稿者 xml-rpc : 2006年8月25日 03:53
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/44542
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。