るびきちです。

http://yslab.atnifty.com/~yukimi_sake/diary/d?date=20080504#p02

> ASCIIコンパチに限らず相互変換可能なエンコーディング同士は全てレシーバに
> 従属して自動変換するとか、guessを導入するとか、default_externalはmagic
> commentを簡略化できるとか、それ用の起動オプションを用意するとか、もっと
> ユーザーにやさしくして、普段はエンコーディングを意識せずにプログラミン
> グできるようにならないといけないと思うんだけどなぁ。。


Ruby 1.9で異なるエンコーディングの文字列を結合するとエラーになりますが、
将来的にレシーバのエンコーディングに変換して結合するようになりますか?
あるいは、そのようなメソッドを新設する予定はありますか?
もちろん相互変換可能という条件つきで。
もしレシーバがUS-ASCIIならば引数のエンコーディングになるものとします。

予定がないとしたら、どういう問題があるのでしょうか?

euc = "漢字"
euc.encoding                               # => #<Encoding:EUC-JP>
cp932 = "漢字".encode("cp932")
cp932.encoding                             # => #<Encoding:Windows-31J>
euc + cp932 rescue $!
# => #<EncodingCompatibilityError: incompatible character encodings: EUC-JP and Windows-31J>
result = euc + cp932.encode(euc.encoding)  # => "漢字漢字"
result.encoding                            # => #<Encoding:EUC-JP>

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/