天天看點

Rails:中文亂碼解決方案

①、安裝mysql時,預設字元集為latin1       (無須改動)    

②、通過這種方式生成你的應用(myblog),以便配置mysql: rails myblog  -d  mysql 

③、修改.\config下的database.yml :  encoding: utf8 

④、確定你所用的資料庫:character_set_database ='utf8',如果不是(預設為latin1),

可以通過Create DATABASE db_name  DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

或者Alert DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;來設定

⑤、如果你是通過ActiveRecord插入資料,那麼ActiveRecord連接配接資料庫時,也要加上

:encoding => 'utf8' (相當于在mysql下執行set names 'utf8') 此時插入中文時會出錯提示              

Mysql::Error: Incorrect string value:'\xB1\xB1\xBE\xA9\xD0\xF1...'那麼需要将你的程式檔案另存為utf8格式

當然如果改為:encoding => 'gb2312',就不會出現上面的錯誤,不過我還是提倡:encoding => 'utf8',畢竟utf8比gb2312更強大嘛!

⑥、所有.html.erb檔案都另存為utf8格式

*PS:

可以通過UltraEdit來另存,方法如下:“檔案-->轉換-->ASCII到UTF-8(Unicode編輯)”,然後儲存即可。

mysql檢視字元集指令:

SHOW VARIABLES LIKE '%collation%';

SHOW VARIABLES LIKE '%character%';