如何解决在rails 3&ruby 1.8.7中使用latin1或utf8的方法
| 我发现utf-8是标准配置,但是Mysql不完全支持utf-8(4bytes)。 现在这是我的情况。 我的mysql排序规则变量显示为latin1,但是\“ database.yml \”(rails)中的编码机制为utf8。 我有一个大约有20个表的数据库,每个表中约有1k行。 我正在使用Mysql 5.0,ruby 1.8.7和rails 3。 我想至少支持一些不可打印的章程。 最好的选择是什么? 我是否应该将整个数据库更改为utf-8(转换非常痛苦,而且mysql完全不支持utf-8)。 我应该将\“ database.yml \”中的编码机制更改为latin1(新设置是否与已经存储的旧数据兼容)。 还有其他解决方案吗? 谢谢。解决方法
我认为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;
当然....
始终备份您的数据,然后先在临时计算机上进行尝试
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。