引用:
作者: ppp0600
我記得之前安裝的時候是用BIG5碼作為基礎,
但是後來的程式都是UTF8,
造成後來的程式顯示都是亂碼,
我想請問可以將資料庫改成UTF8嗎?
那原本BIG5的資料會變亂碼嗎?
是否有其他方法可修改?
我是有查到一篇用手動改法,
只是我不清楚怕毀了資料......
(我已經毀掉過兩次了  )
|
1. 可以改成 UTF-8
2. 有些字的前面會自動被加上 \,所以你要自己手動去改那些字,eg.許、功、蓋等
3. phpbb2 本身要改編碼
4. MySQL 本身也要改編碼
5. 以上有個環節出錯,你的資料庫就毀了,請先做好備份
==
接下來開始教你實戰過程XD
1. 請先把資料庫使用 mysqldump,以 latin1 格式備份出來(資料庫預設都是使用 latin1)
mysqldump --all-databases --default-character-set=latin1 -u root -p > mysql.sql
注意,這一步沒做,你轉換一定失敗。
2.把資料表的編碼修正為 UTF8
找出下列幾行,並將所有的 latin1 改為 utf8
s/SET NAMES utf8
s/ENGINE=MyISAM DEFAULT CHARSET=utf8
s/ENGINE=InnoDB DEFAULT CHARSET=utf8
s/ENGINE=MEMORY DEFAULT CHARSET=utf8
3.實際進行轉換(big5 -> utf8)
iconv -c -f big5 -t utf8 mysql.sql > mysql_utf8.sql
4.修改 MySQL 啟動參數
[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
5. 執行 show variables like 'character\_set\_%';觀察結果是否為下表所列。
+--------------------------+--------+
| Variable_name | Value |
+--------------------------+--------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+--------+
6. mysql -u root < mysql_utf8.sql
恭喜你,資料庫轉換完畢 ^^a
==
還有不懂的地方可以參考這本,寫得很棒,目前啃過的MySQL書就這本最優
什麼都要懂、什麼都要會
您好,我是萬能小叮噹XD