Ruby on rails Rails 3.1、Ruby 1.9.2-p180和UTF-8问题

Ruby on rails Rails 3.1、Ruby 1.9.2-p180和UTF-8问题,ruby-on-rails,utf-8,ruby-on-rails-3.1,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:se

我在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)
seeds.rb
文件顶部添加这一行
#encoding:utf-8
,任何ruby文件都使用spécials字符

我建议您将
Encoding.default\u external=“UTF-8”
添加到
config.ru
文件中,并在
config/environment.rb
中添加编码模板

最后,您可以添加
“”。强制编码('UTF-8)
到会引起问题的字符串中

更新:

在config.ru上添加完整行:


#不覆盖-E选项或LANG,仅适用于ruby>1.9
如果定义了Object.const_?(:编码)&&!环境['LANG']&!环境['RUBYOPT']。包括?('-E')
Encoding.default_internal='utf-8'
Encoding.default_external='utf-8'
终止


不错,这就成功了。希望它也能适用于我的AJAX,因为它也无法正确显示字符。谢谢是啊,看来我还没有摆脱困境。突然间,我的观点只给了我错误_别忘了在database.ymlgood调用中为数据库适配器添加
编码:utf8
,我的视图的问题与Rails 3.1有关。名为的视图。咖啡将错误地编码UTF-8或其他内容。