Rails: GET リクエストのプラス記号がスペースに置き換えられました 質問する

Rails: GET リクエストのプラス記号がスペースに置き換えられました 質問する

Rails 3 (Ruby 1.9.2)ではリクエストを送信します

 Started GET "/controller/action?path=/41_+"

しかし、パラメータリストは次のようになります。

 {"path"=>"/41_ ",
   "controller"=>"controller",
   "action"=>"action"}

ここで何が間違っているのでしょうか? -*または記号は正常に機能しますが、がスペースに置き換えられる.だけです。+

ベストアンサー1

これは通常のURLエンコードです。プラス記号はスペースの省略形です:

クエリ文字列内では、プラス記号はスペースの省略表記として予約されています。したがって、実際のプラス記号はエンコードする必要があります。この方法は、スペースが許可されていないシステムでクエリ URI を渡しやすくするために使用されました。

そして、HTML5標準:

この文字はU+0020スペース文字です
文字を単一の U+002B プラス記号文字 (+) に置き換えます。

おすすめ記事