phpBB2 big5 -> smf utf8

Posted in Daily on April 8th, 2009 by Banbanli

一年多前的B52 Forum 用了phpBB2 big5 編碼,歷經了HDD損毀,灌了新的CentOS 5.x (原本為ver.4.x) Mysql 也從4.x 變成了5.x。
其他的application 移植都沒什麼問題,唯獨,phpBB2 資料庫編碼。在資料庫上看到的是穿著latin 編碼,不過實質上是big5 編碼,移植到Mysql 5.0 整個給你亂碼,default utf8編碼。

昨天P Project pending 中,就在公司用AppServ 模擬起資料庫的轉換。

1. 首先,先安裝2.4.4a AppServ, 把之前的資料庫掛進去, 預設應該是latin 編碼
2. 使用teatime 網站的urf8.php 把之前的phpbb2 的資料庫名稱, mysql ID/PW key in 上去
3. php urf8.php urft.sql 這個動作是把之前的phpBB2 export 出成sql 語法,其中一開始定義用utr8 編碼,執行會把之前的table 消除,然後在餵進去之前得資料
4. 安裝2.5.9 AppServ 開新的database(phpbb2), 編碼選用utf8-generic (選了utf8-unicode 在轉換smf 會有問題)﹍
5. 到竹貓星球download utf8 版的2.0.19,然後進行安裝
6. mysql -u root -p phpbb2 < utf8.sql 把剛剛轉好的資料庫包含sql 語法,import 到資料庫裡面,這邊花了我蠻多的時間,主要是之前灌了calendar 外掛,他修改了不少default 的table 架構,造成在import 的時候出現了蠻多的錯誤,需要手動修改
7. 修改phpbb2/db/mysql4.php 裡面的 if( $this->db_connect_id ) 之前加入,
@mysql_query("SET NAMES utf8",
$this->db_connect_id);

8. download smf 主程式並安裝
9. download phpBB2 convert.php 修改實際上得位址,選utf8
10. done 😀

參考網站

http://blog.teatime.com.tw/post/1/48
http://phpbb-tw.net/phpbb/
http://phorum.study-area.org/index.php?topic=39353.0
http://www.simplemachines.org/