Fel*_*ger 13 ruby encoding utf-8 ruby-1.9.3 ruby-on-rails-4
我在Rails 4和Ruby 1.9.3上
我经常使用"奇怪"字符,所以我必须在所有.rb文件的顶部声明UTF-8编码.
有没有办法将UTF-8设置为Ruby 1.9.3的默认编码?
我尝试了所有答案,但在运行rake db:seed并创建一个属性包含US-ASCII无效字符的对象时,我仍然收到此错误:
`block in trace_on': invalid byte sequence in US-ASCII (ArgumentError)
Run Code Online (Sandbox Code Playgroud)
Hol*_*ust 19
要更改源编码(即您实际编写的源代码所在的编码),您必须使用当前的魔术注释:
# encoding: utf-8
Run Code Online (Sandbox Code Playgroud)
仅设置内部编码(转换后内部字符串表示的编码)或外部编码(读取文件的假定编码)是不够的.实际上,您必须在文件顶部设置魔术编码注释以设置源编码.
在ChiliProject中,我们有一个rake任务,它在发布之前自动在所有文件中设置正确的编码头.
至于编码默认值:
US_ASCII无处不在.UTF-8.因此,如果您使用Ruby 2.0,则可以跳过编码注释,并在默认情况下正确地假设UTF-8编码.
我想你会想要以下其中一种,具体取决于上下文.
Encoding.default_internal = Encoding::UTF_8
Encoding.default_external = Encoding::UTF_8
Run Code Online (Sandbox Code Playgroud)
此设置在environment.rb文件中进行.
在Ruby 1.9中,默认为ASCII
在Ruby 2.0中,默认值为UTF-8.
改变Ruby版本
要么
config.encoding = "utf-8" # application.rb
Run Code Online (Sandbox Code Playgroud)
在你的 database.yml
development:
adapter: your_db
host: localhost
encoding: utf8
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24254 次 |
| 最近记录: |