Ruby On Rails使用MySQL漢字不出現亂碼的設置方法

文章日期:12/20/2007 11:30 pm

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


按上述修改完成即可,页面和数据库都可正常显示中文。