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 閱讀(1482)
評論(0) 編輯 收藏 所屬分類:
Rails