SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;
加上 GLOBAL 關鍵字可擴展至全域,但需 SUPER 權限且重啟後失效。
SET NAMES 'utf8';
等同於同時設定 character_set_client、character_set_connection、character_set_results。最常用、最便捷,建議在應用程式連線建立後立即執行。
編輯設定檔,在 [client] 與 [mysqld] 區段各加一行:
[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
儲存後重啟 MySQL 服務即全域生效。MySQL 5.5+ 建議使用 character-set-server 而非舊式 default-character-set。
SHOW VARIABLES LIKE 'character_set_%';
確認 client、connection、results、database、server 均為 utf8(或 utf8mb4)。
database.yml 加入 encoding: utf8(或 utf8mb4)。CharSet=utf8 或 utf8mb4。