PunBB / FluxBB Discussion Forum
您尚未登入。
由於網站轉換虛擬主機的關係,新的主機商使用MySQL 4.1,使得原先使用MySQL 4.0來安裝的PunBB,現在必須轉換到MySQL 4.1才行.而這裡要做的是處理中文編碼設定的問題,不然轉換過去的PunBB從資料庫取出的中文字將會變成類似問號的亂碼.
1.原先在裝PunBB中文版時已經使用UTF-8編碼,所以整個資料庫檔(SQL)匯出成UTF-8文字檔的格式這部分沒問題.
2.在MySQL 4.1的部分,在匯入資料庫檔前必須先將新的資料庫整個"校對"為UTF-8格式才行,這部分我透過phpMyAdmin來做,並將新的資料庫設定為 utf8_general_ci ,MySQL 連線校對也是採用一樣的設定值.(網路上也有人建議採用utf8_bin這個設定值)
然後把資料庫檔做匯入.
3.修改資料表search_words,將裡頭的word欄位型態,由varchar改成varbinary.
4.修改PunBB關於資料庫查詢的語句,在程式與資料庫連線後,送出"文字編碼採用UTF-8的格式"來查詢資料庫裡的資料.
修改 punbb/include/dblayer/common_db.php,在最後一行加入:
$db->query("SET NAMES 'UTF8'");然後存檔.
5.由於PHP的部分主機商採用PHP5,所以順勢將config.php設定檔改一下,將原先的:
$db_type = 'mysql';改成:
$db_type = 'mysqli';存檔. (PHP5支援MySQL的方式變成mysqli,沒使用PHP5的話這部分就不用改了)
這樣就轉換完成了.
ps. 步驟3如果沒做的話,將可能引發張貼文章或編輯文章時出現錯誤訊息.
離線