1

默认情况下,Rails 允许我们应用程序的用户输入非 utf8 数据,例如:¶®«¼

但是,当我们尝试从数据库中检索数据并将其呈现在模板中时,Rails 错误地假定它是 UTF-8 格式并引发错误。

ArgumentError: invalid byte sequence in UTF-8

处理这个问题的最佳方法是什么?我已经看到一个修复建议在用户可以输入的每个地方清理数据。但是,这将涉及更改大量代码,并且会完全删除字符。理想情况下,我们希望将一些字符转换为它们的 UTF-8 等价物。

我们的环境:

Ruby: 1.9.1
Rails 2.3.5
MySql Gem: 2.8.1

这对我们来说是一个严重而紧迫的问题,因此非常感谢您的回答!

4

1 回答 1

0

尝试使用 mysql2 gem(版本 0.1.6 或更高版本)而不是 mysql。

它仍然是相当新的,但在生产中对我来说效果很好,并且会从你的数据库中检索所有字符串作为 utf-8。

只需安装 gem 并更改您的 database.yml 文件以包含“适配器:mysql2”

于 2010-05-24T05:44:45.570 回答