Rails 3 UTF-8查询字符串显示在URL中?

Tim*_*Tim 33 string url ruby-on-rails ruby-on-rails-3

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

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

<% end %>
Run Code Online (Sandbox Code Playgroud)

当我提交此搜索表单时,我想结束(/ search?query = foo).但是,现在我得到/搜索?utf8 =%E2%9C%93&query = foo.那个utf8参数在那里做什么?我怎么能摆脱它?

谢谢.

Sim*_*tti 46

utf8参数(以前称为雪人)是Internet Explorer错误的Rails 3解决方法.

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


shi*_*ara 31

此参数是rails 3的新功能.

以前是雪人.

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

避免使用form_tag并且它有效:

<form action="<%= search_path %>" method="get" >
  <%= text_field_tag 'query' %>
  <%= submit_tag "Search", :name => nil%>
</form> 
Run Code Online (Sandbox Code Playgroud)


Pau*_*ley 13

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

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