現象:資料入庫正常,讀出亂碼;或 phpMyAdmin 顯示正常,程式讀出亂碼
五步統一字符集
- phpMyAdmin 介面設定
Language: Chinese Simplified (zh-utf-8)
MySQL 字符集:UTF-8 Unicode (utf8)
MySQL 連線校對:gbk_chinese_ci
- 建立資料庫時
整理 (Collation) 設為 gbk_chinese_ci
- 建表 SQL 指定字符集
ENGINE=MyISAM DEFAULT CHARSET=gbk;
ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=40;
- 檢查表結構
`varchar` 等字串欄位 Collation 為 gbk_chinese_ci,數值/日期欄位為空
- PHP 程式連線後執行
$db->query("SET CHARACTER SET GBK");
Linux 環境必加,Windows 視驅動版本而定
原理說明
此設定對應 MySQL 的 Connection Character Sets and Collations,確保「客戶端→連線→伺服器→儲存」四層編碼一致,徹底消除轉碼錯位。