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...然后中文显示就正常了.
posted on 2009-03-09 09:43
fl1429 阅读(1478)
评论(0) 编辑 收藏 所属分类:
Rails