よしだです

siena / cr.chiba-u.ac.jp (Siena.) writes:
> 変換できない場合は、例外を上げてしまうので良いですよね。
> XML 仕様的には、読み込み時に文字エンコーディングが決定可能で
> かつそれに違反する文字が出現した時には fatal error と
> ありますから、逆に出力する場合も同様の扱いという事です。
> これですと、利用側で別の文字エンコーディングに
> 変更してから retry してもらうというのも可能です。
> 少なくとも Iconv ですと、サポートしない変換が指定されたら
> 例外を上げてくる筈ですから、これに限れはそのままで良いですね。

変換できない文字をうまく検出できない iconv の実装があるはず
です。Solaris がそうですし,ほかにもあったような。一見うまく
変換できたように見えて,変換できない文字が '?' に置き換えら
れていたりします。

> 一般化するならば、REXML::{Source,Output}#ext_encoding で
> 変換モジュールの存在をチェックするとかでしょうか。
> ついでに、変換可能な文字エンコーディングか
> 調べる手段も用意できればベターだと思います。
> とかいうのを、REXML::Encoding でやろうとしてました ^^;?
> # 空だったので気になって ^^;

Source と Output で処理が重複してしまったので外に追い出そう
とした名残です。

> それとも、Output が文字エンコーディング指定を
> utf-8 に上書きしてでも出力すべきでしょうか。

それはアプリケーションの仕事でしょうね。

-- 
    吉田正人
    yoshidam / yoshidam.net