3

我有一个在 Rails 2.3.9 上运行的 Rails 应用程序。它在 ruby​​ 1.8.7 上运行良好。我现在正在用 ruby​​ 1.9.2-head 测试它。

应用程序加载正常,直到我尝试加载依赖于 unicode 字符串的页面。然后我得到臭名昭著的编码错误:

ActionView::TemplateError(不兼容的字符编码:UTF-8 和 ASCII-8BIT)……</pre>

看起来问题是我从数据库中获取了一些字符串作为 ASCII-8BIT。

我知道 Rails 3 适用于 ruby​​ 1.9 和 unicode。我想知道是否已将解决方案向后移植到 2.3。

那么,有没有办法让 unicode 2.3.9 rails 应用程序在 ruby​​ 1.9 下运行?

4

2 回答 2

3

所以我继续写了一个插件来修复导致编码问题的两个潜在问题:

  • ActiveRecord 模型
  • Rails 内置助手

请参阅GitHub 上的 UnicodeOverride 插件

于 2010-07-10T17:25:32.260 回答
1

如果您使用的是 mysql,请使用它而不是 mysql gem http://github.com/tmtm/ruby-mysql 。在 database.yml 中保留“mysql”作为数据库适配器。

我们正在运行带有 rails 2.3.8 的 ruby​​ 1.9.2-rc1,这解决了不兼容的字符编码问题。

于 2010-07-10T17:21:38.447 回答