SQLyog 連接 MySQL 資料庫時出現中文亂碼,通常是字元集設定不一致導致。本文提供臨時 SQL 指令與永久介面設定兩種解決方案,並說明原理與適用場景。
於 SQLyog 查詢視窗執行以下指令:
SET character_set_client = utf8;
SET character_set_results = gb2312;
SET character_set_connection = utf8;
SET character_set_client = gbk;
SET character_set_results = gbk;
SET character_set_connection = utf8;
原理說明:
character_set_client:客戶端發送 SQL 的編碼character_set_connection:伺服器解譯 SQL 的編碼character_set_results:伺服器回傳結果的編碼需根據資料庫實際儲存編碼與客戶端顯示編碼對應調整。
| 變數名稱 | 功用 | 建議值 |
|---|---|---|
| character_set_client | Client → Server 查詢編碼 | utf8 / gbk |
| character_set_connection | Server 解析查詢編碼 | utf8 / gbk |
| character_set_results | Server → Client 結果編碼 | utf8 / gbk / gb2312 |
| character_set_database | 預設資料庫編碼(唯讀) | 查看用 |
| character_set_server | 伺服器預設編碼(唯讀) | 查看用 |
SHOW VARIABLES LIKE 'character_set_%';
SHOW CREATE TABLE 表名 確認 CHARSETcharset=utf8my.cnf / my.ini 中 [client]、[mysqld] 區段設定 default-character-setSHOW VARIABLES LIKE 'char%' 稽核