当我在控制器中使用UTF-8字符(大部分时间是土耳其字符)时,我必须在每个控制器文件的顶部添加#encoding: utf-8
。
为什么Rails不将此作为默认值?
编辑:我了解到它不是关于Rails,而是关于Ruby。
答案 0 :(得分:5)
Ruby 2.0默认为UTF8。否则你必须在1.9中表示。根据叙述:
默认脚本编码更改。
默认脚本编码(未指定魔术注释时) 改为UTF8 [#6679]在Ruby 1.9中,默认的脚本编码是 US-ASCII。在考虑以下之后我们将其改为UTF-8 利弊。 UTF-8默认是很方便的,因为大多数 现代应用程序使用UTF-8此更改不会影响任何1.9代码 如果魔术评论到位。 1.9中的默认脚本编码 没有魔术评论是US-ASCII或ASCII-8BIT。那么在UTF-8中 一些字符串操作可能会变慢。
答案 1 :(得分:1)
Rails不是一种编程语言。它只是用Ruby编写的库。它无法改变Ruby的基本语法。 Ruby 1.8对编码一无所知,在Ruby 1.9中默认为ASCII,在Ruby 2.0中默认为UTF-8。 Rails没有什么可以做的。