UTF-8 與 MySQL 的亂碼問題

由於在 phpMyAdmin 上檢視文章時,中文都變亂碼,即使將 MySQL 的 character set 全部改為 UTF-8 也依舊無效,上 Google 找了許久,終於找到這篇:惱人的 mysql 4.1 之後的連線編碼問題有較為完整的解法,最後就是在 my.ini 中的 [mysqld] 底下加入:
init-connect='SET NAMES utf8'
即可。

若是虛擬主機或免費空間則無法用以上方法修改,可以執行 SQL QUERY 來代替。
1. SHOW VARIABLES LIKE 'character%';
  顯示目前資料庫使用的語系設定
2. SHOW VARIABLES LIKE 'collation%';
  顯示目前資料庫使用的 collation 設定
3. ALTER DATABASE `資料庫名稱` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  變更該資料庫的語系及 collation 設定

執行第 3 步驟之後,可以再執行第 1、2 步驟檢查是否設定成功,其中 character_set_server 和 collation_server 就不用管它,因為這是 hosting 設定,一般是沒有權限修改的。


歷史上的今天: