Ruby 3 系からの URI.encode
#Ruby 3 系から URI.encode が使えなくなります。 URI.encode が使えなくなる理由
URI は path や query などの多数のパーツで構成されています。
エスケープ方法は各パーツによって異なります。
従って、全 URI の全体を一つのエスケープ方法でエスケープするのは正しくありません。
URI.encode は上記の問題を考えて実装されていません。
URI.encode は内部的には gsub メソッドで置換を行なっているにすぎません。
URI.encode の代替手段
エスケープしたいパーツに合わせて、エスケープ方法を選択するのが正しい姿です。
query (? 文字の後ろに続く文字列) をエスケープしたい場合: