rails的参数编码问题

时间:2011-09-19 19:44:08

标签: parameters ruby-on-rails-3.1

我在Rails 3.1.0中发布的参数有一个奇怪的问题。

这只发生在生产中而不是发展中。

我已经确认在发帖时,参数会以如下方式传递给服务器:

  

UTF8 =%E2%9C%93&安培; authenticity_token = jOn16Uw3oUBPQfX02nt1IN8muZf150nTt24Ic4JgPvY%3D&安培;警报%5Btitle%5D = HTTP%3A%2F%2Fwww&安培;警报%5Bheadline%5D =%26headline

解码后如下所示:

  

UTF8 =✓&安培; authenticity_token = jOn16Uw3oUBPQfX02nt1IN8muZf150nTt24Ic4JgPvY =安培;警报[标题] = HTTP:// WWW&安培;警报[标题] =&安培;标题

但是,在服务器端,参数接收为:

{"utf8"=>"✓", "authenticity_token"=>"jOn16Uw3oUBPQfX02nt1IN8muZf150nTt24Ic4JgPvY=", 
"alert"=>{"status"=>"published", 
          "title"=>"http://www", "headline"=>"&headline"}

显然,我不希望存储编码值。

我正在使用Rails 3.1.0,独角兽和Nginx。 我也试过Rails 3.1.0,乘客,apache堆栈,并遇到了同样的问题。 在这两种情况下,我都使用1.9.2p290。

我很感激任何建议。是否有我不知道的新生产设置?

1 个答案:

答案 0 :(得分:0)

事实证明,这是Sinatra特定版本的问题。 https://github.com/sinatra/sinatra/issues/360