Rails 3的UTF-8查询string显示在URL?

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

<% form_tag(search_path, :method => :get) do %> <%= text_field_tag 'query' %> <%= submit_tag "Search", :name => nil%> <% end %> 

当我提交这个search表单时,我想最终在(/ search?query = foo)。 但是,现在我得到/search?utf8 =%E2%9C%93&query = foo。 那里有什么utf8参数? 我怎样才能摆脱它?

谢谢。

  • 包含令牌参数的https URL:它有多安全?
  • 将blob URL转换为普通的URL
  • 从外部URL调用定制的GASfunction
  • 在Angular 1.6中使用URL hash-bang(#!/)前缀而不是简单的哈希(#/)
  • url查询参数是否有效?
  • C#如何检查URL是否存在/有效?
  • Path.Combine的url?
  • 在request.GET中捕获url参数
  • 4 Solutions collect form web for “Rails 3的UTF-8查询string显示在URL?”

    utf8参数(以前称为“ 雪人” )是针对Internet Explorer错误的Rails 3解决方法。

    简短的答案是,除非POST数据中至less包含一个UTF8字符,否则Internet Explorer将忽略POST数据的UTF8编码。 出于这个原因,Rails在表单中插入一个UTF8字符,强制IE将所有内容视为UTF8编码。

    这个参数是rails 3的一个新function。

    这是以前的雪人。

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

    避免使用form_tag,它的工作原理:

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

    Rails 4.2中的form_tag (可能更早)有一个:enforce_utf8选项;

    如果设置为false,则不输出名称为utf8的隐藏input。

    我想每个人都做了很好的工作来解释为什么它存在,但是我觉得这个问题没有得到回答,那就是:

    我怎样才能摆脱它?

    所以说一切正确,你需要它来帮助“IE”,但它之所以出现在你的地址栏是因为你正在做一个“GET”而不是“POST”。 让它成为一个职位,它走了,但你也没有遵循惯例。

    归结到哪些是你最可以接受的。