首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails 3和ruby1.8.7使用latin1或utf8是什么?

rails 3和ruby1.8.7使用latin1或utf8是什么?
EN

Stack Overflow用户
提问于 2011-06-14 04:13:53
回答 1查看 832关注 0票数 0

我发现utf-8是标准的,但是Mysql并不完全支持utf-8(4字节)。

现在是我的处境。mysql的排序变量显示latin1,但是"database.yml"(rails)中的编码机制是utf8。

我有一个数据库,大约有20个表,每个表中有大约1k行。我正在使用MySQL5.0、ruby1.8.7和rails 3。

我想至少支持一些不可打印的章程。最好的选择是什么?

  1. 应该将整个数据库更改为utf-8 (转换是痛苦的,而且mysql完全不支持utf-8)。
  2. 是否应该将"database.yml“中的编码机制更改为latin1 (新设置是否与已经存储的旧数据兼容)。
  3. 还有其他解决方案吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-14 04:43:50

我认为database.yml中的:编码字段正是创建新数据库时所使用的。

如果您更改此字段,应用程序不会中断。

(事实上,我认为它什么也做不了,除非你使用rake db:create)

我建议,如果你的应用是针对美国或西欧以外的任何人,你应该使用utf8。我感到惊讶的是,Ubuntu仍然提供默认的latin1。

这可能是“优化”的空间,但给几乎任何一个客户面对网站的人带来麻烦。

关于如何将数据库转换为UTF8 http://www.devcha.com/2008/03/convert-existing-mysql-database-from.html,google上有各种链接。

就像这样

代码语言:javascript
复制
/* 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;

当然..。

总是备份您的数据,并首先在暂存计算机()上试用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6338980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档