rubyで&もスペースもurlencodeする

「&」も「 (スペース)」もエンコードしたいと考えた時に、

[1] pry(main)> URI.escape('hoge&hoge hoge')
=> "hoge&hoge%20hoge"
[2] pry(main)> CGI.escape('hoge&hoge hoge')
=> "hoge%26hoge+hoge"

となって希望の形にならなかった。

最終的に見つけた解はこれ。

[3] pry(main)> require 'erb'
[4] pry(main)> ERB::Util.url_encode('hoge&hoge hoge')
=> "hoge%26hoge%20hoge"

良かった。

コメント

タイトルとURLをコピーしました