1

开发模式下的 rails 应用程序会提供内部服务器错误,而不是通常的带有跟踪的错误页面。也没有任何信息log/development.log。不管是什么服务器。应任何要求。

怎么了?

4

1 回答 1

2

ruby 1.9 下无效字符编码导致的语法错误。当ruby(和rails)在源文件中默认需要ASCII时,您很可能使用了utf-8。(是的,对吧?)

解决方案是使用 BOM http://www.w3.org/International/questions/qa-byte-order-mark或把

# encoding: UTF-8

或者

# coding: UTF-8

在 utf-8 中的文件之上。

UTF-8全局设置,你可以把

config.encoding = "utf-8"

在你config/application.rb这相当于

Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8

这又相当于把:

# encoding: UTF-8

或每个文件顶部的 BOM。

这允许在 rails 应用程序的所有文件上全局使用 utf-8。

如果您想在所有 ruby​​ 文件上使用全局选项,可以使用-Eor -Kruby​​ 选项并通过RUBYOPT环境变量进行设置,例如:

export RUBYOPT=-Ku

或者

export RUBYOPT='-E utf-8:utf-8'

http://www.manpagez.com/man/1/ruby/http://zargony.com/2009/07/24/ruby-1-9-and-file-encodings

还有一个 gem 可以在 Rails 项目中需要它的每个文件的顶部设置魔术注释:h ttps://github.com/m-ryan/magic_encoding

于 2012-11-08T16:48:53.177 回答