Issue #4125 has been updated by Yuki S…
Status changed from Assigned to Closed
I regard this issue as an enhancement. So I don’t merge r30118.
Backport #4125: String#encode(:fallback) should accept default handler
http://redmine.ruby-lang.org/issues/4125
Author: Koichi Sasada
Status: Closed
Priority: Low
Assignee: Yuki S.
Category:
Target version:
=begin
ささだです.
最近,String#encode は :fallback オプションによって,置換できない文字
を置き換えるための文字(列)のテーブルを渡すことができる,ということを知
りました.
p “\u00A9”.encode(‘sjis’, fallback: {"\u00a9" => ‘©’})
#=> ‘©’
ただ,fallback オプションは Hash のデフォルトハンドラを見てくれないよ
うです.
h = Hash.new{’?’}
h["\u00a9"] = ‘©’
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 とか,#[] を持っているオブジェクト一般に広げてもいいかもしれませ
んが,その辺はお任せします.
–
// SASADA Koichi at atdot dot net
すでにパチモンがパッチを持ってるようですが….
=end