From: Fujioka Date: 2009-07-28T08:49:08+09:00 Subject: [ruby-dev:38925] Re: String#valid_encoding?にオプションが欲しい xibbarです。 > Fujioka wrote: >> xibbarこと藤岡です。(なぜか届かないので再送します) > > 「Fromの.jpがjpになってたのでrejectだった」とのことです。 > ぐは、設定間違っていました。すみません。 >> if str.valid_encoding(Encoding::UTF_8) >> str.force_encoding(Encoding::UTF_8) >> end >> >> となってすっきりです。 > > これですが、文法上はすっきりする裏で、パッチを書けばおわかりの通り、 > 無駄なオブジェクトを作った上に、coderange_scanの結果を捨ててしまいます。 > 言い換えると、文法的な汚さとは裏腹に、現状の方が処理系にとっては綺麗なのです。 > なるほど。確かに無駄だとは思っていました。 > ゆえに、String#valid_encoding?(enc)を追加してしまうと効率が悪いが一見綺麗な > 書き方を推奨してしまうことになるので、当分の間は採用できません。 > > 代替案としては、force_encodingとvalid_encoding?を、 > 同時に行うメソッドを新設するという案があります。 > 私がやりたいことは結局変換できたら変換したいということなので、 これが新設されるとうれしいです。