在Ruby on Rails中,’#encoding:utf-8’和’config.encoding =“utf-8”’有什么不同?

我可以通过在其顶部添加注释行来指定任何ruby文件以使用特定编码:

#encoding: utf-8 

但是在Rails的config/application.rb ,我发现了这个:

 config.encoding = "utf-8" 

他们不一样吗? 如果我设置了config.encoding = "utf-8" ,我还需要#encoding: utf-8吗?

config/application.rbconfig.encoding = "utf-8"部分与rails应如何解释内容有关。

#encoding: utf-8 ruby文件中的#encoding: utf-8告诉ruby这个文件包含非ascii字符。

这两种情况不同。 第一个(在config/application.rb )告诉rails,并且没有任何关于ruby本身应该如何解释源文件。

你可以设置环境变量RUBYOPT=-Ku如果你是懒惰的,并希望ruby自动将.rb文件的默认文件编码设置为utf-8 ,但我宁愿建议你将非ascii位放入翻译文件和参考与I18n.t