From: "NARUSE, Yui" Date: 2010-12-07T16:43:42+09:00 Subject: [ruby-dev:42711] Re: [Feature: trunk] String#encode(:fallback) should accept default handler 成瀬です。 2010年12月7日12:21 Yukihiro Matsumoto : > まつもと ゆきひろです > > In message "Re: [ruby-dev:42692] [Feature: trunk] String#encode(:fallback) should accept default handler" > on Mon, 6 Dec 2010 21:04:18 +0900, SASADA Koichi writes: > > | ただ,fallback オプションは Hash のデフォルトハンドラを見てくれないよ > |うです. > | > |h = Hash.new{'?'} > |h["\u00a9"] = '(c)' > |p "\u00A9\u00AA".encode('sjis', fallback: h) > |t.rb:3:in `encode': U+00AA from UTF-8 to Shift_JIS > |(Encoding::UndefinedConversionError) > | from t.rb:3:in `
' > | > | > | マップを知っているものは特定の文字(列)に,知らないものはテキトーに > |"?" とかにしたい,という用途はあるんじゃないかと思うので,対応して貰える > |といいんじゃないかと思うんですが,どうでしょうか. > | > | > | Proc とか,#[] を持っているオブジェクト一般に広げてもいいかもしれませ > |んが,その辺はお任せします. > > |# すでにパチモンがパッチを持ってるようですが.... > > この変更に賛成します。 ruby/ruby.h に追加している VALUE rb_obj_is_method(VALUE); に /*intern*/ をつけ、 テストを追加したら中田さんの持っていたパッチでいいんじゃないかと思います。 いれちゃってくださいませ -- NARUSE, Yui naruse@airemix.jp