よしだです

siena / cr.chiba-u.ac.jp (Siena.) writes:
> [ruby-list:35269] < 須藤功平 さん
>
> たので、[ruby-list:35193]のよしださんの案(と
> http://www.yoshidam.net/diary/rexml.diff)を紹介しました。
>
> よしださんの最近の分の日記を拝見しました。
> こつこつと進めてらしたのですね。素晴らしいです。
> 差分は大分良さそうに見えます。

REXML::Source のほうは,UTF-16 のサロゲートペア対応,
UTF-16(LE|BE)対応,UTF-32(|LE|BE)対応なども入れるべきでしょ
うが,今の段階ではこんなものでいいのではないでしょうか。

> Source と Output でのプラットフォーム間の差異はどうしましょうか。
> いずれ、Iconv などを使わねばならなくなりますよね。
> プラットフォーム別の変換モジュールを使うように変更します?
> このままで、Iconv かそのラッパで吸収するようにします?

Iconv のラッパというのがいいと思いますが,iconv の実装に違い
がありすぎてどうしようもないかもしれません。Solaris 2.6 以前
の iconv のように UTF-8 に対応していないものもあるし,言語パッ
ケージがインストールしてあるかどうかでも違うような。


> あと、出力関係を改善できそうだったので、ちょっとだけいじってみました。
> REXML 2.3.3 + http://www.yoshidam.net/diary/rexml.diff をベースに、
> 次の点を変更したつもり ^^; なのですが、いかがでしょうか。
> * Output#encoding から文字エンコーディングを取得できるようにした
> * XMLDecl#write で出力の文字エンコーディングが反映されるようにした
> * Document#write に出力の文字エンコーディングを指定できるようにした (おまけ)

出力のほうはもうちょっと何とかする必要がありそうです。今の 
REXML::Output は変換できない文字を全て文字参照に置き換えてし
まいますが,要素名などを文字参照に置き換えるのはまずいでしょ
う。

-- 
    吉田正人
    yoshidam / yoshidam.net