一直以來 MySQL 下不同的編碼都困擾著大家,經常在使用過程中出現亂碼的現象,有的則需要對已經存在資料的論壇進行編碼轉換,下面我們就介紹如何利用 Discuz! 論壇後臺的備份恢復功能來對資料庫的編碼進行轉換。
利用論壇後臺的備份恢復功能進行編碼轉換主要是利用了 MySQL 資料庫的編碼機制來實現的,關於 MySQL 編碼機制可以參考:MySQL 編碼機制。
在瞭解了 MySQL 編碼機制的基礎上,我們在詳細說下論壇後臺的備份恢復,Discuz! 論壇備份的資料可以是 16 進位制的資料,由於英文字元和數字在任何編碼下的程式碼都是相同的,也就是說英文字元和數字沒有編碼的問題,什麼編碼下都能顯示正常和正常識別。所以我們把資料庫中的資料備份成 16 進位制編碼的資料 (全部是英文字元和數字) 就保證了資料的完整和一致,儲存的過程中不存在編碼問題。
舉例說明從 GBK 編碼的論壇轉換成 UTF8 編碼的論壇:
1 、首先上傳一個 UTF8 編碼的對應版本的 Discuz! 論壇,對照 GBK 論壇的 config.inc.php 檔案,編輯 UTF8 論壇的 config.inc.php 檔案,把其中的資料庫配置資訊配置為連線待轉碼的 GBK 論壇的資料庫,並且把其中的連個引數這樣設定:
$dbcharset='utf8';
$charset='utf-8';
- <P>$dbcharset='utf8';</P><P>$charset='utf-8';</P>
2 、登陸剛才配置好的 UTF8 論壇,進入後臺進行備份,都保持預設設定即可,備份完畢後可以直接恢復資料庫,恢復完畢後檢查是不是論壇的資料庫已經轉換成 UTF8 編碼的了。