From: Tanaka Akira Date: 2008-10-21T10:47:56+09:00 Subject: [ruby-dev:36825] Re: [ruby-cvs:27036] Ruby:r19818 (trunk): * transcode.c (str_transcode0): String#encode without argument now In article <6.0.0.20.2.20081021093404.0ada7bf8@localhost>, Martin Duerst writes: > ファイル名は以前の議論の結果「変換可能でしたら変換、そうでなかったら > バイナリ」のままでいいです。そもそもこの変換 (又は無変換) はユーザが > encode で起こすのではなく、内部で行われているものなので今回の議論では > 対象外だと思いました。違う言葉で言ってみれば、勿論「対処による」は > 正しいですが、引数無しの encode と 引数付きの encode の差だけで対処 > が判別できるのかは相当疑問があります。 ユーザがファイル名に対して encode を呼ぶのはありうる話です。 そういう状況があるのに、無条件に replace というのは乱暴では ないですか? 引数の有無で、というのは、エンコーディングを指定するようなと きはまじめに考えなさいというメッセージだと思います。 なんで簡単だけど不適切な場合があり得るやりかたを拡大したがる んですか? > 後は、Encoding::Converter::UNDEF_HEX_CHARREF はあるが、それと相当 > する :undef => :hex とかがないのも直した方がいいかと思います。 > 時間がなかったらこちらでもできます。 やめてください。 もし :undef => :hex を許したとすると、それは & を & のままに するが、変換できないものは &#xhhh; にするというものになるで しょう。 そうすると、:undef => :hex を使うにはまず & を & にして から呼ばなければならず、それを忘れると不適切な結果が生成され ます。 & を & にするのもいっしょにやってくれる :xml => :text を 使ってください。 可能なことをなんでも提供すればいいというものではありません。 -- [田中 哲][たなか あきら][Tanaka Akira]