Ruby On Rails使用MySQL漢字不出現亂碼的設置方法〔良言〕
环境:
Ruby 1.8.5
MySQL 5.0
Windows XP
MySQL设置:
将MySQL的Character设置成为utf8(或GBK或GB2312,只要和ROR里的Character设置统一就行)。
修改方法有3种:
1、用MySQL Server Instance Config Wizard设置character-set为utf8
2、修改MySQL的配置文件,改其中的两处default-character-set=utf8(推荐,改完后重启MySQL生效)
3、在建表时指定表的character-set为utf8
Ruby On Rails设置:
修改application.rb告知MySql使用UTF8
class ApplicationController < ActionController::Base
before_filter :configure_charsets
def configure_charsets
#@headers["Content-Type"] = "text/html; charset=utf-8"
@response.headers["Content-Type"] = "text/html; charset=utf-8"
# Set connection charset. MySQL 4.0 doesn’t support this so it
#will throw an error, MySQL 4.1 needs this
suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES utf8'
end
end
end
按上述修改完成即可,页面和数据库都可正常显示中文。