在 Ruby on Rails 3(当前使用 Beta 4)中,我看到在使用form_tagorform_for助手时,会出现一个名为_snowman“钸”(Unicode \x9731)的隐藏字段。
form_tag
form_for
_snowman
那么,这是为了什么?
这是为了支持 Internet Explorer 5 并鼓励它使用UTF-8作为其表单。
此处看到的提交消息详细说明如下:
修复几个已知的网络编码问题: 在所有表单上指定接受字符集。所有最近的浏览器,以及 IE5+,都将使用为表单参数指定的编码 不幸的是,除非表单值中的至少一个字符不在页面的字符集中,否则 IE5+ 不会查看接受字符集。由于用户可以覆盖默认 字符集(Rails 设置为 UTF-8),我们提供了一个包含 unicode 字符的隐藏输入,强制 IE 查看接受字符集。 现在绝大多数 Web 输入都是 UTF-8,我们将入站参数设置为 UTF-8。这将消除 ASCII-8BIT 和 UTF-8 之间编码不兼容的许多情况。 您可以放心地忽略 params[:_snowman]
修复几个已知的网络编码问题:
简而言之,您可以放心地忽略此参数。
不过,我不确定我们为什么要支持像 Internet Explorer 5 这样的旧技术。如果你问我,这似乎是一个非常非 Ruby on Rails 的决定。