我有一个使用 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。
非常感谢!本杰明