Emi*_*äck 2 ruby-on-rails utf-8 ruby-on-rails-3.1
我在使用UTF-8字符时遇到了一些麻烦.这是db/seeds.rb
User.create(username: 'eml', first_name: '****', last_name: '****äck', 
            email: 'somemail@example.com', password: 'asdasd')
我的终端(OSX 10.5.8)设置为使用UTF-8,Rails(根据application.rb)设置为使用utf-8.这是错误:
$ rake db:seed
rake aborted!
/Projects/***/db/seeds.rb:8: invalid multibyte char (US-ASCII)
/Projects/***/db/seeds.rb:8: invalid multibyte char (US-ASCII)
/Projects/***/db/seeds.rb:8: syntax error, unexpected $end, expecting ')'
...ame: '****', last_name: '****äck', 
...                               ^
Tasks: TOP => db:seed
(See full trace by running task with --trace)
# encoding: utf-8在seeds.rb文件顶部添加此行,任何ruby文件都使用spécialschars
我建议你添加Encoding.default_external = "UTF-8"到config.ru文件和config/environment.rb编码模板
最后,你可以添加"".force_encoding('UTF-8)到你的字符串,造成问题.
更新:
在config.ru上添加完整行:
 # Not override -E option or LANG and apply only for ruby > 1.9
if Object.const_defined?(:Encoding) && !ENV['LANG'] && !ENV['RUBYOPT'].include?('-E')
  Encoding.default_internal = 'utf-8'
  Encoding.default_external = 'utf-8'
end
| 归档时间: | 
 | 
| 查看次数: | 3582 次 | 
| 最近记录: |