從以往使用WordPress的過程裡,因為主機資料庫的版本問題,造成中文的呈現出現火星文,這些混亂的的狀況,對於不懂程式設計的End User來說,真的是非常痛苦的使用經驗。這一次利用WordPress 升級到2.2.X版,在wp-config.php檔裡面也多了與編碼、資料庫相關設定的機會,可以一次解決以往惱人的亂碼問題。轉換的過程雖然有些繁瑣,不過希望可以透過一些簡單的文字與圖片,跟大家分享轉換的過程,幫助大家順利的完成變身,快樂使用WordPress。
資料庫修正作業版本介紹,MySQL:4.1.22-standard,phpMyAdmin:2.10.0.2,升級前WordPress 2.1.X。
狀況說明:在WordPress的輸入文章沒有問題,網誌的呈現也正常,但是在虛擬主機商提供的Cpanel管理介面,使用phpMyAdmin查詢資料庫內容時,資料庫的欄位多了校對(被預設成latin1_swedish_ci)欄(圖一),資料庫內容呈現亂碼(圖二)。
如果你的使用狀況跟max上列所提到的一樣,那麼接下來的說明文章希望可以幫助你輕鬆的完成資料庫修正。
資料庫修正步驟如下:先將資料庫的資料正確匯出,方法有二個。
A:如果你的主機提供SSH連線的話,可以直接執行資料庫備份指令,
mysqldump -u user -p sql_name ---character-set=latin1 > xxxxxx.sql
如果有興趣,想要更進一步研究,可以參考MySQL database migration: latin1 to utf8 conversion這一篇文章。
B:這是這一次說明的主要方式,使用phpMyAdmin,如果直接在主機提供的Cpanel管理介面中使用匯出資料庫,資料庫的內容還是亂碼,為了讓資料庫匯出正確的中文內容,需要對phpMyAdmin的程式作一點點修改,但是主機商通常不可能為單一個案作這樣的變動,解決的辦法就是自行安裝phpMyAdmin。
(1) 前往http://www.phpmyadmin.net下載phpmyadmin程式,目前版本是phpMyAdmin 2.11.0 UTF-8,解壓縮後打開config.sample.inc.php檔,找到 $cfg['blowfish_secret'] = '';
,在''
之間填入任意數字串,例如 $cfg['blowfish_secret'] = 'a12345678';
,修改完後將檔案存成config.inc.php。
(2) 接下來到/libraries資料夾,打開select_lang.lib.php檔,搜尋$GLOBALS['mysql_charset_map'] = array(
這一段文字下方,將'utf-8' => 'utf8',改成'utf-8' => 'latin1',
,修改完畢後存檔。
(3) 將phpMyAdmin的程式上傳到主機上,如果一切順利,打開瀏覽器輸入你放置phpMyAdmin程式的網址,應該會出現一個讓你登入的畫面(圖三),然後輸入你的使用者名稱跟密碼進入後,就可以開始使用自己安裝的phpMyAdmin管理自己的資料庫了。
(4) 登入phpMyAdmin以後,選取WordPress使用的資料庫,在頁面右上方點選輸出(紅色圈圈處,圖四)。
(5) 在資料庫輸出的頁面,記得檢查輸出項目是不是全選(箭頭所指位置,圖五),確定後往下看,下載儲存請打勾(箭頭A所指位置,圖六),然後點選右下方執行按鈕(箭頭B所指位置,圖六),開始資料庫進行下載。
(6) 接下來使用Notepad++開啟下載回來的sql檔,並將編碼轉換成UTF-8(圖七)。(另外,關於Notepad++的使用,可以查閱max之前的文章說明,無痛安裝 WordPress 前傳-工具篇 Notepad++。)再來修改資料庫內容相關設定,找到DEFAULT CHARSET=latin1
取代為 DEFAULT CHARSET=utf8
(圖八,圖九),完成後存檔,到這裡為止資料庫的修正算是到一個段落,而且是中文字體呈現正常的UTF-8編碼。
接下來,就是將修正後的資料庫檔案正確的上傳到虛擬主機上。
(1) 登入虛擬主機的Cpanel管理介面,點選phpMyAdmin(圖十,紅色圈處),進入phpMyAdmin管理介面。
(2) 選取安裝WordPress的資料庫,將資料表全部選起來(圖十一,紅色圈圈)。
(3) 選擇的資料表點選刪除(圖十二,紅色箭頭所指)。
(4) 出現刪除資料表確認的畫面,點選是(圖十三,紅色箭頭所指)。
(5) 刪除完畢後點選畫面右上方管理(圖十四,紅色箭頭所指)。
(6) 管理頁面最下方,校對,將 latin1_general_ci(或是latin1_swedish_ci) 換選擇 utf8_general_ci (圖十五,圖十六,紅色箭頭所指),然後選選執行。
(7) 執行完畢點選畫面上方載入(圖十七,紅色箭頭所指)。
(8) 開始上傳修正過的資料庫檔到虛擬主機,選取資料庫檔案(圖十八A),選取後點選執行(圖十八B)。
(9) 上傳成功以後,會看見載入成功的畫面(圖十九)。
(10) 以上完成後,在虛擬主機裡面的phpMyAdmin管理介面,總算可以正常的看見中文的資料,資料庫的修正到這裡就算是完成了。
(11) 接下來開啟自己的WordPress網頁,會發現部落格的頁面,中文變成了??????(圖二十,紅色箭頭所指),這是因為WordPress的版本是2.1.X版的關係,這時候馬上進行WordPress版本升級的動作,將WordPress升級到2.2.X版就可以解決??????的問題,需要留意的地方是在WordPress 2.2.X版wp-config.php檔,多了兩個地方要填入資料,define('DB_CHARSET', 'utf8');
跟 define('DB_COLLATE', 'utf8_general_ci');
(圖二十一,紅色箭頭所指)。
以上,就是將資料庫修正的過程跟大家分享。
特別提醒的是:
1. 如果想要作這樣子修正必須與max所提的情況相同者再進行修正。
2. 先到自己WordPress管理介面,將文章先行輸出,這樣萬一資料庫搞壞了,文章起碼有輸出備份下來。
3. 在修正資料庫過程自行安裝的phpMyAdmin,建議當資料庫修正完畢後就立刻刪除,這樣可以避免增加對程式照顧的負擔。
4. 全新安裝者,可以不必理會這一篇文章。