适用于Ruby 1.8.6-26以及Rails 1.2.6。
第一次正式研究Rails,首先攻克的问题就是编码问题。解决方法如下:
Rails方面配置:
- Updated at 2008-03-19
编辑文件 config/environment.rb,在第一行加入下面的语句:
$KCODE = 'u'
require 'jcode'
- 网站app/controller文件夹下,application.rb,添加如下代码:
before_filter :configure_charsets
def configure_charsets
@headers["Content-Type"] = "text/html; charset=utf-8"
end
- 网站config文件夹下,database.yml,为每一个数据库添加如下配置:
encoding: utf8
另外,确保每一个rhtml的header部分被正确的配置。
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
确保包含中文的rb文件和rhtml文件使用UTF-8编码(无BOM)格式保存。
数据库方面配置:
mysql应该使用utf8编码。
令,在fedora下时,由于自带的mysql在安装的时候是不能更改字符集的,因此需要在安装之后调整字符集。编辑/etc/my.cnf,在每一个配置节点下添加default-character-set=utf8,重新启动mysql,并且重新创建需要的数据库,运行数据迁移任务即可。如果直接修改字符集不而不重新创建数据库则无效。