MySQL 5.0.16 版本特有的字符集處理機制,導致中文存取亂碼,需從 phpMyAdmin、建庫、建表、程式碼四個層面統一設定。
CREATE DATABASE db_name DEFAULT COLLATE gbk_chinese_ci;
-- MyISAM
CREATE TABLE t (...) ENGINE=MyISAM DEFAULT CHARSET=gbk;
-- InnoDB
CREATE TABLE t (...) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=40;
VARCHAR 類型欄位:整理屬性設為 gbk_chinese_ci$db->query("SET CHARACTER SET GBK");
注意:Linux 環境必須加此行,Windows 環境通常不需要。
此操作等同於設定 Connection Character Sets and Collations,確保 Client → Server → Database → Table → Column 字符集鏈路一致,避免隱式轉換導致亂碼。
MySQL 5.5+ 建議全鏈路使用 utf8mb4 + utf8mb4_unicode_ci,徹底解決多語言與 Emoji 儲存問題。