URI.encodeだっけCGI.escapeだっけ、そういえばuってaliasなかったけとなったので ソース見てみました。 結論 こちらで議論されているように、CGI.escapeとERB::Util.uでは挙動が異なります。 ruby -r cgi -r erb -e 'puts CGI.escape("a b"), ERB::Util.u("a b")' $ ruby -r cgi -r erb -e 'puts CGI.escape("a b"), ERB::Util.u("a b")' a+b a%20b 基本は、ERB::Util.uでいいのかな。(Railsのviewで使うならuでok) CGI.escapeの方が早いらしいのでこの差を意識しない場合のみCGI.escapeでしょうか。 ソース抜粋 URI.encode 使っちゃダメです。 obsoleteでした。 #1.9.