About The Author

max

使用 WordPress 架設網站不再是一件痛苦的工作。這裡跟大家分享使用WordPress的相關問題與研究。 並且提供有關WordPress外掛程式,佈景主題等等的使用經驗分享。 幫助想要建立網站的朋友,可以簡單,快速,無痛苦的建立與使用網站。

11 Comments

  1. Danny Lin

    Max 請問一下,我看過您寫的一篇有關 mysql 資料庫連線校對問題的 ‘http://www.wordpress.com.tw/?p=99’ ,我最近想升級成 2.3 -> 2.5,發現我的 WP 因為架設在 bluehost,也有類似的問題…

    我從 bluehost 提供的 cpanel 上的 phpmyadmin 去看,資料庫內容都是亂碼,但我已經從 phpmyadmin 把校正改為 utf8_general_ci, 編碼改為 utf-8 了,執行了 2.5的 wp-admin/upgrade.php 後,發現我整個站都變亂碼了…

    請問這還有救嗎?

    以下是 bluehost 上的各種程式版本…

    Apache version 2.2.8 (Unix)
    PHP version 4.4.8
    MySQL version 5.0.45-community-
    log
    cPanel Pro 1.0 (RC1)

  2. max

    Danny Lin
    你好,資料庫的問題是在以前的版本才會發生,請問你在升級2.5版之前,phpmyadmin裡面的中文是否正常?網頁是否正常?
    另外,你升級完2.5版之後,你的wp-config.php檔案裡面是否有正確填寫
    define('DB_CHARSET', 'utf8');
    define('DB_COLLATE', 'utf8_general_ci');

    還有你提到的資料庫修改的文章,是不是這一篇http://www.wordpress.com.tw/?p=64。

  3. Danny Lin

    Hi Max,

    升級前,在 phpmyadmin 裡頭看就是亂碼了..但是網頁都正常…

    wp-config.php 有填寫:

    define(‘DB_CHARSET’, ‘utf8’);
    define(‘DB_COLLATE’, ‘utf8_general_ci’);

  4. max

    Danny Lin
    升級前亂碼?那麼你有按照我的文章修改資料庫嗎?
    修改資料庫後的phpmyadmin裡面的中文呢?還是亂碼嗎?

  5. Danny Lin

    Hi Max,

    升級前是亂碼,所以我是直接把 2.5 檔上傳後,執行 wp-admin/upgrade.php,phpmyadmin 裡頭在升級前後都是亂碼,但升級前,用 2.3 讀取時,在 web 上看是正常的 (只有在 phpmyadmin 裡頭才會變亂碼),升級後,用 2.5 從 web 上看就全都變亂碼了…

    我猜 upgrade.php 應該是沒有對資料庫應該還沒有動到任何轉碼… 不曉得還有沒有救?

    Danny

  6. max

    Danny Lin
    你好,如果你的步驟是主機上的資料庫都沒有動(連線校對也沒更改),直接升級2.5版的話,那麼先試試將wp-config.php檔案裡面的define(’DB_COLLATE’, ‘utf8_general_ci’);這一段拿掉,看看網頁是不是可以正常呈現中文?
    P.S. 要是真的無法恢復,只好跟bluehost網管反應,請他將你的網站網站恢復到你升級的前一天的狀態。

  7. Danny Lin

    Max,

    試過把 define(’DB_COLLATE’, ‘utf8_general_ci’); 先拿掉,網頁還是亂碼.. 我看我先把 2.3 裝回去,如果真的不行,就真的得求救 bluehost 網管了。

    謝謝您幫忙釋疑..

    對了,我有 SSH 去把我的資料庫 dump 一份回來 (用 latin1).. 只是不曉得有沒有用…

    Danny

  8. max

    Hi Danny
    如果是升級前的資料庫,你可以參考http://www.wordpress.com.tw/?p=64這一篇文章,看看符不符合你使用,如果是升級後的話,可能就比較難復原了。

  9. Danny Lin

    Hi Max,

    終於救回來了…分享一下過程, 不過我還是覺得很奇怪…@@

    0. 先用 2.3 做實驗..
    1. 我把用 SSH dump (default-character-set=latin1) 的檔案下載回來看,確定是 UTF-8,而且在 editor 裡頭可以看到正常的中文…(心理就安心一半了!~)
    2. 試著 create 一個新的 db,char-set 設為 utf8, collation = utf8-unicode-ci
    3. 把剛剛 dump 的檔案試著倒回去…
    4. 在 bluehost 的 phpmyadmin 看,還是亂碼…
    5. 試著把其中一篇最新的 post,用剪貼的方式,把我在 editor 裡頭看到的中文貼回去..
    6. 透過 browser 看,還是亂的,心有點冷了一半。
    7. 想說死馬當活馬醫,乾脆再把 2.5 全部蓋過去…再透過 透過 browser 看,絕了,那篇是正常的中文… 其他內容都還是亂的。心想該不會要我一篇一篇貼吧。
    8. 靈機一動,想到 wp-config.php 裡頭那兩行設定… 把這兩行 comment 掉,上傳蓋過去..
    define(’DB_CHARSET’, ‘utf8′);
    define(’DB_COLLATE’, ‘utf8_general_ci’);

    9. 竟然全部回來了!
    10. 把 db 設定改為原來有問題那個,竟然也可以了!

    真的滿奇怪。我之前用 2.3 ,我的 wp-config.php 一直有那兩行… 升級成 2.5,反而變成不必了。@@

    現在我的 MySql 設定:
    charset=utf8
    collation=utf8-unicode-ci

    我用的 db 也是同樣的設定。我是用bluehost ,我猜 dreamhost 也會有類似的問題…

  10. skyfate

      這兩句:

      define(’DB_CHARSET’, ‘utf8′);
      define(’DB_COLLATE’, ‘utf8_general_ci’);

      若是沒記錯的話,是在 2.2 還是 2.3 時加上去的。這兩句應該只適用於全新安裝,也就是說在上述版本之前就已經開始使用 WordPress 的使用者,基本上是沒這兩句的。

      這兩句就是造成亂碼的原因,不論您是用哪一家主機。

  11. 梵.そよぎ

    2.3跳到2.5,這改變還蠻大的
    因為中間的”試用”都沒去摸過
    沒想到…這一換…竟然有種被嚇到的感覺
    而且還有種給它一點點不習慣~XD
    不過呢,管理介面變得頂漂亮的^^

網站架設

WordPress 虛擬主機免費安裝設定