SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
關鍵變數:
character_set_server:伺服器預設character_set_database:當前資料庫character_set_client/connection/results:連線三要素character_set_system:系統識別符 (固定 utf8)SHOW TABLE STATUS FROM `db_name` LIKE 'tbl_name';
關注 Collation 欄位 (如 utf8mb4_unicode_ci)。
SHOW FULL COLUMNS FROM `tbl_name`;
Collation 欄顯示各欄位實際編碼,NULL 表非字串型別。
SHOW CHARACTER SET;
-- 或
SHOW CHARSET;
輸出欄位:Charset、Description、Default collation、Maxlen (最大字節數)。
my.cnf character-set-serverCREATE DATABASE ... CHARSET=utf8mb4 / ALTER DATABASECREATE TABLE ... CHARSET=utf8mb4 / ALTER TABLE ... CHARSET=... (僅影響新增欄位)col VARCHAR(32) CHARSET=utf8mb4 / MODIFY col ... CHARSET=...SET NAMES utf8mb4 / JDBC characterEncoding[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
| Charset | Maxlen | 支援範圍 | 備註 |
|---|---|---|---|
| utf8mb4 | 4 | 完整 Unicode (含 Emoji) | 推薦 |
| utf8 | 3 | BMP 平面 (無 Emoji) | 舊稱 utf8mb3 |
| gbk | 2 | 中文常用字 | 舊系統相容 |
| latin1 | 1 | 西歐字元 | MySQL 預設 (舊版) |
| binary | 1 | 二進位位元組 | 不做字元檢查 |
-- 連線後立即執行 (僅限舊系統 latin1/gbk 混用場景)
SET NAMES gbk;
-- 新專案請全鏈路 utf8mb4,勿用此法