随笔-167  评论-65  文章-0  trackbacks-0

1,mysql数据库采用utf8编码格式(注意是utf8,非utf-8)
包括数据库,表,字段的所有编码

2, 在你的rails项目的database.yml中设置编码格式
development:
  adapter: mysql
  database: session_development
  username: root
  password: riskfitfeng
  host: localhost
  encoding: utf8(注意是utf8,非utf-8)

3,设置所有的rhtml文件编码格式为UTF-8
<meta http-equiv="Content-type" content="text/rhtml; charset=utf-8" />
注意为utf-8 或者UTF-8  不能为utf8

4,打开:application.rb:修改代码如下显示:(这步一定要有,最重要)
class ApplicationController < ActionController::Base

 #为应用程序中所有controller的action添加如下filter。
 before_filter :set_charset

  #设置字符集
  def set_charset
  @headers["Content-Type"] = "text/html; charset=utf8"
  @response.headers["Content-Type"] = "text/html; charset=utf8"
  suppress(ActiveRecord::StatementInvalid) do
   ActiveRecord::Base.connection.execute 'SET NAMES utf8'
  end
  end

end

至此,你的Rails工程的中文乱码已经得到解决

补充:有些人在mysql的客户端工具中文显示是正常的,但是在Console中显示确实乱码,这是因为windows中文版默认的编码方式是gb2312,
所以要想显示正常,需在Console中输入 set charset gb2312; 或者gbk...然后中文显示就正常了.



write by feng
posted on 2009-03-09 09:43 fl1429 阅读(1474) 评论(0)  编辑  收藏 所属分类: Rails

只有注册用户登录后才能发表评论。


网站导航:
 
已访问数:
free counters