MySQL4.1之後資料庫編碼已改成Unicode,之前是lantin1,
原本的環境:
Fedora Core3、Apache2.053、MySQL3.23.58
新環境:
Fedora Core5、Apache2.2.2、MySQL5.0.27
記住轉換前舊環境的資料一定要備份
1.將資料匯出
如果原先是Big5的資料,dump出來後就直接把Big5轉成UTF-8即可。
代碼: 選擇全部
#mysqldump -u account -p –default-character-set=latin1 database >output.sql
#piconv -f big5 -t utf8 output.sql >utf8.sql代碼: 選擇全部
#mysqldump -u account -p –default-character-set=latin1 database >output.sql
#piconv -f utf8 -t big5 output.sql > big5.sql
#piconv -f big5 -t utf8 big5.sql >utf8.sql如果是在windows下,可用ConvertZ這個軟體來轉,
另外一個方法是用notepad打開,再另存新檔,編碼選擇「UTF-8」。
2.在MySQL5下開一個新資料庫,
建立時”校對”要選utf8_general_ci
代碼: 選擇全部
CREATE DATABASE `XXX` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;有時候原本匯出的文字中有許功蓋的字時,會多出「\」,
匯入時會發生錯誤,用文字編輯器將其消除再匯入,
代碼: 選擇全部
#mysql -u account -p XXX < utf8.sql附註:
1.在MySQL5裝好之後,修改my.cnf,win32下是my.ini
代碼: 選擇全部
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci2. 程式部分,用php去連資料庫時,
在query之前加入,
代碼: 選擇全部
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER_SET_CLIENT=utf8");
mysql_query("SET CHARACTER_SET_RESULTS=utf8"); [code]
另外加上
[code]header("Content-type: text/html; charset=UTF-8");參考文章:
http://blog.leolo.cc/2006/02/06/134/