定义世界

投捕信赖,就是 ACM SIGMOD

解决Rails的乱码问题

适用于Ruby 1.8.6-26以及Rails 1.2.6。

第一次正式研究Rails,首先攻克的问题就是编码问题。解决方法如下:

Rails方面配置:

  1. Updated at 2008-03-19
    编辑文件 config/environment.rb,在第一行加入下面的语句:
    $KCODE = 'u'
    require 'jcode'
  2. 网站app/controller文件夹下,application.rb,添加如下代码:
    before_filter :configure_charsets
    def configure_charsets
      @headers["Content-Type"] = "text/html; charset=utf-8"
    end
  3. 网站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,并且重新创建需要的数据库,运行数据迁移任务即可。如果直接修改字符集不而不重新创建数据库则无效。

posted on 2008-01-25 15:43 光荣之翼 阅读(105) 评论(0)  编辑  收藏 所属分类: Rails, Rails, Rails


标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-04-14 23:32 编辑过