用latin1可以存中文,吃什么吐什么,倒也省事,主要有两个问题,一是打开数据库查看都是乱码,二是第三方程序调用困难,比如Solr要对latin1里面的中文建索引就比较麻烦。所以,还是把中文存放成utf8编码最好,还能应对i18n。
其实解决中文问题很简单:
1、确定MySQL数据库编码是utf8
2、database.yml里面增加encoding: utf8
3、确定rhtml文件编码是utf8这样就搞定了。只不过很多人不知道应该如何正确设置数据库编码……
这是javaeye老大robbin的一段话。经过实践,这三点的确是没错,而真正的难点也正在数据库设置上。要把一个库里里外外搞成utf8才能让rails正确的存取中文。

很容易把一个库变成上面这个样子,注意里面还有一个latin1,这个时候rails读出库里的中文会变成问号,进行正确设置的教程。