ROR與MySQL的中文顯示
弄了一天的中文顯示,但還是感覺(jué)有些不對。
一、安裝數據庫:
1、安裝5.0版本。
2、在安裝時(shí)選擇"utf-8"編碼。
3、如果安裝時(shí)未選"utf-8",可用 MySQL Administrator 的 “Startup Variables”/”Advanced” 更改 Def. Char Set 為 “utf-8” ?;蛘呔庉婱ySQL目錄下的my.ini文件:
[mysql]
default-character-set=utf8
SET NAMES ‘utf8‘
[mysqld]
default-character-set=utf8
4、安裝 MySQL Tools :MySQL Administrator ,MySQL Query Browser
5、在MySQL Query Browser中執行:
SHOW VARIABLES LIKE ‘character_set_%‘; 查詢(xún)系統的字符串均為utf8。
6、建立數據庫。選擇MyISAM,InnoDB都可以,不過(guò)后者支持事務(wù)處理,這是它的誘人之處。
7、建立表。在用MySQL Query Browser創(chuàng )建表時(shí),可再次指定字符集。并可以對數據庫的存儲引擎進(jìn)行修改。
二、開(kāi)發(fā)工具:
使用“RedRails”。并在其“屬性”選項中選擇編碼為"utf-8"格式。這樣,你的所有文件就都是utf8格式了。
三、修改文件:
A、將public/dispatch.cgi文件的#!/path/to/ruby后面加上-Ku -rjcode
B、修改app/controller/application.rb文件。
class ApplicationController < ActionController::Base
before_filter :set_charset
def set_charset
@headers["Content-Type"] = "text/html; charset=utf-8"
end
end
四、問(wèn)題:
瀏覽器,與代碼內的中文的顯示都可以了。但數據庫中的表為什么還是亂碼呢?
此問(wèn)題按james的意見(jiàn),對database.yml文件進(jìn)行了修改,數據庫顯示中文正常。
你的數據庫連接串也需要加上utf-8的設置,如:
在database.yml中需要加上
development:
adapter: mysql
database: database
username: root
password:
host: localhost
encoding: utf8
五、問(wèn)題二:
如果一個(gè)表選擇MyISAM引擎時(shí),可為一個(gè)表建立兩個(gè)外鍵約束,但若是InnDB引擎時(shí),建立一個(gè)外鍵約束還可以,但建立兩個(gè)外鍵約束時(shí),會(huì )提示error:150錯誤,創(chuàng )建失敗。
聯(lián)系客服