wordpress hong kong font

其實比較早期的版本 WordPress 在建立新 blog 時已經直接使用 UTF8 格式儲存,所以沒有編碼問題,同一篇文章有正體殘體中文字,加上日本韓文等都沒事;而 WordPress 亦支援部分香港常用字,如「邨」、「埗」等等都沒有問題。

不過其實一般常用的 MySQL 所使用的 UTF-8 只有 Level-0 最低級別的支援,所以如果輸入了不支援的香港字如「????」的話,由於 MySQL 不支援的關係,儲存時會連同「????」字以後的文字都會消失。
企企已經經歷這種情況數次,寫完一大篇 blog save 後就消失了大部份,真的欲哭無淚,最近又幾乎發生這種情況,所以決心找解決之道。

MySQL 都清楚它們對 UTF8 的支援有限,不過一直到 MySQL 5.5 才真正支援完整的 UTF8,名為 UTF8MB4。
UTF8MB4 除了支援完整香港字外,還支援 Emoji 等字元。
而 UTF8 和 UTF8MB4 最大不同之處是 UTF8 只用 3 byte 儲存一個字,UTF8MB4 則用 4 byte 儲存,所以一些 Index 欄位就會變成上限只有 179 字元,這是 UTF8MB4 其中一個軟肋,但除非你是超大型的 blog 否則 WordPress 應該難以用盡這個上限。

另一個使用 UTF8MB4 時要注意的是,它只支援 InnoDB,不過較新建的 blog 預設已經是 InnoDB 了,如果不是的話就需要轉換。

首先:請 backup 你的 database 以防出現狀況時可以救回。

如果不太清楚如何 backup 的話,建議安裝 phpMyAdmin,這個 web gui 介面亦會方便之後的步驟。

安裝 phpMyAdmin

假設各位可能沒有 SSH 的權限,大家需要下載 phpMyAdmin 到自己的電腦並解壓。
將 config.sample.inc.php 改名為 config.inc.php,用記事簿編輯並更改其中一句

$cfg['blowfish_secret'] = 'a8b7c6d';

將 a8b7c6d 改為其他任何字,總之只要非這字串就可以了。這個是 session string 防止其他人 hack 你的 database,因為用預設的話,有機會被 hacker 扮已登入並更改你的資料。

跟著開一個新 folder 如 phpMyAdmin-skq13d34 等後面加一串亂碼,防止其他人估你的 phpMyAdmin 位,加多一層保障。
之後 ftp 上載 phpMyAdmin 到你 blog 的 root folder.

phpMyAdmin ftp upload

最後就要改變 config.inc.php 的權限,否則人人也可以看到你的 session secret 就像人人都可以看到你的密碼一樣,無秘密可言。

phpMyAdmin ftp File pemissions
Right click config.inc.php
之後選擇 File permission
phpMyAdmin ftp file attributes
將權限設定為 600

安裝完畢,現在可以登入 phpMyAdmin backup 你的 database 了。
phpMyAdmin 的登入網址是 http://YOUR_DOMAIN/phpMyAdmin-YOUR_NUMBER

Backup Database

Backup database 其實很簡單,登入 phpMyAdmin 後就會看到 WordPress 的 db,之後在右邊選擇匯出 (export),再選擇「自訂」,在輸出選擇壓縮為 gzip 壓縮,按確定後就可以儲存你的 backup.

phpMyAdmin export

最後按「執行」就可以儲存 backup 了。