一直以來 MySQL 下不同的編碼都困擾著大家,經(jīng)常在使用過程中出現(xiàn)亂碼的現(xiàn)象,有的則需要對已經(jīng)存在數(shù)據(jù)的論壇進行編碼轉(zhuǎn)換,下面我們就介紹如何利用 Discuz! 論壇后臺的備份恢復(fù)功能來對數(shù)據(jù)庫的編碼進行轉(zhuǎn)換。
利用論壇后臺的備份恢復(fù)功能進行編碼轉(zhuǎn)換主要是利用了 MySQL 數(shù)據(jù)庫的編碼機制來實現(xiàn)的,關(guān)于 MySQL 編碼機制可以參考:MySQL編碼機制。
在了解了 MySQL 編碼機制的基礎(chǔ)上,我們在詳細說下論壇后臺的備份恢復(fù),Discuz! 論壇備份的數(shù)據(jù)可以是16進制的數(shù)據(jù),由于英文字符和數(shù)字在任何編碼下的代碼都是相同的,也就是說英文字符和數(shù)字沒有編碼的問題,什么編碼下都能顯示正常和正常識別。所以我們把數(shù)據(jù)庫中的數(shù)據(jù)備份成16進制編碼的數(shù)據(jù)(全部是英文字符和數(shù)字)就保證了數(shù)據(jù)的完整和一致,保存的過程中不存在編碼問題。
舉例說明從 GBK 編碼的論壇轉(zhuǎn)換成 UTF8 編碼的論壇:
1、首先上傳一個UTF8編碼的對應(yīng)版本的 Discuz! 論壇,對照 GBK 論壇的 config.inc.php 文件,編輯 UTF8 論壇的 config.inc.php 文件,把其中的數(shù)據(jù)庫配置信息配置為連接待轉(zhuǎn)碼的 GBK 論壇的數(shù)據(jù)庫,并且把其中的連個參數(shù)這樣設(shè)定:
$dbcharset='utf8';
$charset='utf-8';
2、登陸剛才配置好的 UTF8 論壇,進入后臺進行備份,都保持默認設(shè)置即可,備份完畢后可以直接恢復(fù)數(shù)據(jù)庫,恢復(fù)完畢后檢查是不是論壇的數(shù)據(jù)庫已經(jīng)轉(zhuǎn)換成 UTF8 編碼的了。
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答!! 點擊進入論壇