コントローラー
@url = params[:url] Encoding.default_external = 'UTF-8' require 'uri' # @url = URI::encode(@url) # @url = URI.unescape(@url) # @url = URI.decode(@url) # => どれを試しても結果が同じ @result = @url
http://localhost:3000/api/index.json?url=http://localhost:3000/api/index.json?url=hgoe&urls=fuga
このURLでRailsにクエリパラメータを送りたいのですが、
http://localhost:3000/api/index.json?url=http%3a%2f%2flocalhost%3a3000%2fapi%2findex%2ejson%3furl%3dhgoe%26urls%3dfuga
これをエンコードして
URLにアクセスすると、コントローラーでデコードされ、@resultが http://localhost:3000/api/index.json?url=hgoe&urls=fuga
のような形で返ってくるはずだったのですが、
結果は {"keywords":"http://localhost:3000/api/index.json?url=hgoe\u0026urls=fuga"}
で、どうやら&
がうまくエンコードorデコードされていない、もしくはRuby側の処理に問題があるのかと思うのですが、
原因が分かりません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。