Nic*_*ume 34 ruby-on-rails utf-8 internationalization character-encoding ruby-on-rails-3
我对Rails 3.0.1,Ruby 1.9.2以及我的网站本地化产生了一些麻烦.
问题很简单,我在视图中有类似的东西:
f.input :zip_code, :label => I18n.t('labels.zip_code')
Run Code Online (Sandbox Code Playgroud)
和es.yml文件:
es:
labels:
zip_code: "Este código postal no es valido."
Run Code Online (Sandbox Code Playgroud)
en.yml文件没有麻烦(它是纯ASCII)但是当网站设置时i18n.locale == 'es'我得到这个错误:
incompatible character encodings: UTF-8 and ASCII-8BIT
Run Code Online (Sandbox Code Playgroud)
我一直在寻找一段时间,但没有找到使用我的UTF-8翻译文件的方法.
有人知道如何让它有效吗?
谢谢你的帮助.
Nic*_*ume 47
好吧,经过几个小时的谷歌搜索后问题解决了......
我的代码实际上有两个错误.第一个是文件编码错误,第二个是MySQL数据库配置问题.
首先,要解决MySQL引起的错误,我使用了这两篇文章:
http://www.dotkam.com/2008/09/14/configure-rails-and-mysql-to-support-utf-8/
http://www.rorra.com.ar/2010/07/30/rails-3-mysql-and-utf-8/
其次,为了解决文件编码问题,我在config/environment.rb中添加了这两行
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
Run Code Online (Sandbox Code Playgroud)
希望这会帮助某人:)
Rit*_*mar 23
我通过结合许多解决方案解决了大部分问题:
application.rb有这一行:config.encoding = "utf-8".# encoding: utf-8包含utf-8字符的任何文件的顶部.<App Name>::Application.initialize!在行上方添加以下两行environment.rb:
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
Run Code Online (Sandbox Code Playgroud)http://rorguide.blogspot.com/2011/06/incompatible-character-encodings-ascii.html