字符集設定不當是導致中文亂碼的主因。本文彙總查看 MySQL 各層級字符集的實用指令,適用於 Windows 與 Linux 環境。
SHOW VARIABLES LIKE '%char%';
關鍵變數說明:
character_set_server:伺服器預設字符集character_set_database:當前資料庫字符集character_set_client、character_set_connection、character_set_results:客戶端/連線/結果字符集character_sets_dir:字符集檔案目錄SHOW TABLE STATUS FROM `database_name` LIKE 'table_name';
結果中的 Collation 欄位即為表的排序規則(隱含字符集),例如 utf8_general_ci 代表 UTF-8。
SHOW FULL COLUMNS FROM `table_name`;
Collation 欄顯示各欄位的字符集與排序規則,NULL 表示數值型欄位無字符集。
SHOW CHARSET;
輸出包含 Charset、Description、Default collation、Maxlen 等資訊,可確認是否支援 utf8mb4、gbk 等。
utf8mb4 並搭配 utf8mb4_unicode_ci。