一直以來 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 編碼的了。