⛳
nil.to_sのエンコード変更
Ruby 2.7.0でnil.to_sがfrozen stringを返すようになりました。
なのでエンコードの変更は失敗します。
irb> nil.to_s.force_encoding('utf-8')
FrozenError (can't modify frozen String: "")
encodeに変更すればいいんですが、force_encodingを使うのは文字列のコピーを避けたいからだし。。。
irb> nil.to_s.encode('utf-8')
=> ""
他の文字列の場合はasciiからutf-8に強制変更したいみたいだったので、非frozen文字列で。
irb> (+nil.to_s).force_encoding('utf-8')
=> ""
Discussion