調用微信 API 獲取用戶信息(含中文)入庫後,數據庫顯示 ?? 亂碼。
字符編碼不一致:微信返回 UTF-8,但 MySQL 連接層/表字符集非 UTF-8,導致存入時轉換損壞。
/etc/mysql/my.cnf(或 /etc/my.cnf):[mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci
注意:MySQL 版本不同參數名可能差異,若重啟失敗報 job failed to start、socket 沒連接,請對照版本文檔調整(如 5.7+ 建議 utf8mb4)。
systemctl restart mysqld 或 service mysql restartSHOW VARIABLES LIKE 'character_set_%'; STATUS; SHOW FULL COLUMNS FROM user;
utf8mb4 支持 Emoji):應用層 SET NAMES utf8mb4、連接池配置 characterEncoding=utf8mb4、表字符集 CHARSET=utf8mb4。utf8mb4,否則 4 字節字符會截斷報錯。