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

富国沪深
TA贡献1790条经验 获得超9个赞
这是为了支持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的决定。
- 3 回答
- 0 关注
- 634 浏览
添加回答
举报
0/150
提交
取消