From: Kouhei Sutou Date: 2010-11-02T21:50:01+09:00 Subject: [ruby-dev:42514] Re: [Ruby 1.9-Bug#3990][Closed] tests of rexml/rss reports many errors and failures without iconv 須藤です。 In <4CCF03C6.3090504@airemix.jp> "[ruby-dev:42510] Re: [Ruby 1.9-Bug#3990][Closed] tests of rexml/rss reports many errors and failures without iconv" on Tue, 2 Nov 2010 03:15:40 +0900, "NARUSE, Yui" wrote: > この変更では、Ruby M17N の encoding system を使うようにしていますが、 > 導入した非互換変更には反対です。 その意見はわからなくもわからなくもないです。 私も迷いました。 ただ、反対の理由として以下は弱いと感じます。 非推奨とかいつなくなるとかが確定しているくらい必要だと感じま す。 > 総論として、REXML は Ruby 的に非推奨という扱いになりつつあるというのは > 合意がとれていると思われるところ、この状況下で非互換変更をするのは > 避けるべきだと思います。 個人的には標準添付されているXMLパーサはRubyのみで書かれたも のの方がいいと思っています。Nokogiriとかはgemでいいと思って います。 > また、今回の REXML::Document#encoding, REXML::XMLdecl#encoding, > REXML::Output#encoding and REXML::Source#encoding は、 > ドキュメントが自称しているエンコーディングと、Ruby が解釈し使っている > エンコーディングは分離するべきでしょう。 意図していることを理解できている自信がないのですが、エンコー ディングを表すのにEncodingオブジェクトを使うのはよくない、と いうことですか? > 直近では UTF-16BE/UTF-16LE は BOM なしを意味するので、 > BOM 付きの UTF-16 が欲しいときに困ります。 > (なお、UTF-16 は ASCII incompatible なので色々バグってる気がする) もともとREXMLは出力時にBOMをつけないのですが、BOM付きの UTF-16が必要になるのはどういう場面を想定していますか? ここも意図を理解している自信がないのですが、RubyのEncodingは まだIconvの代わりには使えないということですか? > というわけで、encoding メソッドは以前のままにして、Encoding オブジェクトを > 返すメソッドを新設した方がよいのではないかと思います。 encodingよりもEncodingオブジェクトを返すのに適切な名前を思い つけないので、そういうAPIにはしない方がよいと思っています。