1

我有一个使用 utf-8 运行的 rails 应用程序。它使用 mysql 数据库,所有表都具有 mysql 的默认字符集和排序规则(即 latin1)。因此 latin1 表包含 utf-8 数据。当然,这不太好,但我对它并不感兴趣。一切正常,因为连接编码也是 latin1,因此 mysql 不会在字符集之间转换。

只有一个问题:我需要一个表的 utf-8 全文索引:

mysql> show create table autocompletephrases;

... AUTO_INCREMENT=310095 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

但是:我不想在我的 rails 应用程序中的字符集之间进行转换。因此我想知道我是否可以设置 config/database.yml

production:
     adapter: mysql
>>>> encoding: binary
     ...

连接到 mySQL 时只调用 SET NAMES 'binary'。看起来它适用于我的情况,因为我猜它会强制 mysql 在字符集(mySQL 文档)之间进行转换。有谁知道这样做的问题?有什么副作用吗?

或者你有什么其他建议吗?但我想避免将我的整个数据库转换为 utf-8。

非常感谢!本杰明

4

1 回答 1

0

我觉得有令人信服的理由只是转换而不是引入一些可以暂时解决您的问题的东西,直到您最终需要在未来进行转换。

我现在只需转换即可为自己节省未来的痛苦。

于 2010-05-21T16:36:38.947 回答