Heroku和Rails:如何将utf-8设置为默认编码
今天,我创建了一个工作应用程序的副本,它在Heroku上完美运行,并尝试将其部署在Heroku上作为新项目的起点。
我将新文件夹添加为git存储库,在GitHub上创建了一个新的远程存储库,编辑了配置文件并为数据库提供了新名称,创建了新数据库并尝试在Heroku上部署。
现在应用程序在启动时崩溃了,因为Heroku在我的源文件中发现了一些utf-8文本并且无法识别它们:
2011-06-27T14:23:10+00:00 app[web.1]: /app/app/controllers/home_controller.rb:118: invalid multibyte char (US-ASCII) 2011-06-27T14:23:10+00:00 app[web.1]: /app/app/controllers/home_controller.rb:118: syntax error, unexpected $end, expecting '}' 2011-06-27T14:23:10+00:00 app[web.1]: ...tue azioni, conquista la città!"}
如何告诉Rails和Heroku我的所有源文件都是utf-8编码的? 我应该在每个文件中添加UTF-8 BOM吗? 这很疯狂,我在之前的应用程序中没有这样做,效果很好。
我正在使用Rails 2.3.6。
在你的config / application.rb中,
config.encoding = "utf-8"
在database.yml中,
development: adapter: mysql2(whatever your db) host: localhost encoding: utf8
你还必须添加(包括哈希)
# encoding: UTF-8
来源: http : //craiccomputing.blogspot.com/2011/02/rails-utf-8-and-heroku.html
我找到了这个更简单的解决方案:
只需将ENV['RUBYOPT'] = "-Ku"
到Heroku上的环境变量中即可。 你可以用figaro gem做到这一点 :
- 将
gem "figaro"
添加到您的Gemfile
-
bundle install
-
在
config/application.yml
插入此代码:production: RUBYOPT: "-Ku"
-
跑
rake figaro:heroku
此外,您可以尝试使用magic_encoding gem ,但我不喜欢这种方法。