Ruby on Rails 3表单中的_snowman参数是什么?

在Ruby on Rails 3(当前使用Beta 4)中,我看到使用form_tag或form_for帮助器时,会显示一个隐藏的字段,其名称_snowman为☃(Unicode \ x9731)。


那么,这是为了什么呢?


沧海一幻觉
浏览 576回答 3
3回答

富国沪深

这是为了支持Internet Explorer 5并鼓励它在表单中使用UTF-8。此处看到的提交消息将其详细说明如下:解决几个已知的Web编码问题:在所有表单上指定accept-charset。所有最新的浏览器以及IE5 +都将使用为表单参数指定的编码不幸的是,IE5 +不会查看accept-charset,除非表单的值中至少有一个字符不在页面的charset中。由于用户可以覆盖默认字符集(Rails将其设置为UTF-8),因此我们提供了一个包含unicode字符的隐藏输入,迫使IE查看accept-charset。现在绝大多数Web输入是UTF-8,我们将入站参数设置为UTF-8。这将消除ASCII-8BIT和UTF-8 之间编码不兼容的许多情况。您可以放心地忽略参数[:_snowman]简而言之,您可以放心地忽略此参数。不过,我不确定为什么我们要支持Internet Explorer 5之类的旧技术。如果您问我,这似乎是一个非常非Ruby on Rails的决定。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby