为什么Rails中的默认编码不是UTF-8?

时间:2013-05-15 09:26:44

标签: ruby character-encoding

当我在控制器中使用UTF-8字符(大部分时间是土耳其字符)时,我必须在每个控制器文件的顶部添加#encoding: utf-8。 为什么Rails不将此作为默认值?

编辑:我了解到它不是关于Rails,而是关于Ruby。

2 个答案:

答案 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中   一些字符串操作可能会变慢。

来源:Rubyist Magazine

答案 1 :(得分:1)

Rails不是一种编程语言。它只是用Ruby编写的库。它无法改变Ruby的基本语法。 Ruby 1.8对编码一无所知,在Ruby 1.9中默认为ASCII,在Ruby 2.0中默认为UTF-8。 Rails没有什么可以做的。