我发现utf-8是标准,但是Mysql并不完全支持utf-8(4bytes)。
现在是我的情况。 我的mysql校对变量显示latin1但“database.yml”(rails)中的编码机制是utf8。
我有一个数据库,每个表中有大约20个表和大约1k行。 我使用的是Mysql 5.0,ruby 1.8.7和rails 3。
我想支持至少一些不可打印的章程。 什么是最好的选择?
谢谢。
答案 0 :(得分:1)
我认为:database.yml中的:encoding字段 就是在创建新数据库时使用的内容。
如果您更改此字段,则不会破坏您的应用
(事实上我认为它不会做任何事情,除非你使用rake db:create
)
我建议,如果您的应用针对的是美国或西欧以外的任何人 你应该使用utf8。 我发现令人惊讶的是,Ubuntu仍然默认为latin1。
这可以为空间“优化” 但是对于几乎所有有客户面向网站的人都会造成麻烦。
Google上有各种链接可以将您的数据库转换为UTF8 http://www.devcha.com/2008/03/convert-existing-mysql-database-from.html
类似
/* convert the default character set (used for new tables) */
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
/* convert a specific table */
ALTER TABLE db_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
当然......
始终备份您的数据,并先在分段计算机上进行试用