Ruby on rails URL中是否显示Rails 3 UTF-8查询字符串?

Ruby on rails URL中是否显示Rails 3 UTF-8查询字符串?,ruby-on-rails,string,url,ruby-on-rails-3,Ruby On Rails,String,Url,Ruby On Rails 3,我的主页上有一个搜索查询表单(/) :get)do%> 零%> 当我提交此搜索表单时,我希望最终位于(/search?query=foo)。但是,现在我获取/搜索?utf8=%E2%9C%93&query=foo。utf8参数在那里做什么?我怎样才能摆脱它 谢谢。此参数是rails 3的一项新功能 原来是雪人 它有助于IE真正使用utf-8 避免使用form_标签,它可以: <form action="<%= search_path %>" method="get" >

我的主页上有一个搜索查询表单(/)

:get)do%>
零%>
当我提交此搜索表单时,我希望最终位于(/search?query=foo)。但是,现在我获取/搜索?utf8=%E2%9C%93&query=foo。utf8参数在那里做什么?我怎样才能摆脱它


谢谢。

此参数是rails 3的一项新功能

原来是雪人

它有助于IE真正使用utf-8

避免使用form_标签,它可以:

<form action="<%= search_path %>" method="get" >
  <%= text_field_tag 'query' %>
  <%= submit_tag "Search", :name => nil%>
</form> 

零%>
utf8参数(以前称为)是针对Internet Explorer bug的Rails 3解决方案

简而言之,Internet Explorer忽略POST数据UTF8编码,除非POST数据中至少包含一个UTF8字符。因此,Rails在表单中注入一个UTF8字符,以强制IE将所有内容都视为UTF8编码。

(可能更早)有一个
:强制执行UTF8
选项

如果设置为false,则不会输出名为utf8的隐藏输入


我认为每个人都很好地解释了它的存在,但我觉得这个问题没有得到回答,那就是:

我怎样才能摆脱它

因此,所说的一切都是正确的,你确实需要它来帮助“IE”,但它出现在你的地址栏中的原因是因为你在做“GET”而不是“POST”。让它成为一个帖子,它就消失了,但你也没有遵循惯例


归根结底,这取决于你最能接受的是哪一个。

我所追求的——我的搜索表单没有得到持久化,所以我只想要一个没有“勾号”的GET请求。雪人本来可以留下来,但他现在走了:(+1以避免UTF8参数在提交时被传递。在我的情况下,我不认为UTF8是重要的。请参阅我多年后的答案。form_tag的
:强制执行UTF8
选项。
<form action="<%= search_path %>" method="get" >
  <%= text_field_tag 'query' %>
  <%= submit_tag "Search", :name => nil%>
</form>