SHOW VARIABLES LIKE 'char%'; SHOW VARIABLES LIKE 'collation%';
輸出示例:
+--------------------------+---------------------------------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.1\share\charsets\ | +--------------------------+---------------------------------------------------------+
SET character_set_connection=utf8; -- 或一次性設定三大連接字符集 SET NAMES utf8;
-- 查看 SHOW CREATE DATABASE db_name; -- 修改 ALTER DATABASE db_name CHARACTER SET charset_name COLLATE collation_name; -- 創建時指定 CREATE DATABASE db_name CHARACTER SET charset_name COLLATE collation_name;
SHOW CREATE TABLE tbl_name; ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name COLLATE collation_name; CREATE TABLE tbl_name (...) CHARACTER SET charset_name COLLATE collation_name;
SHOW FULL COLUMNS IN tbl_name; ALTER TABLE tbl_name MODIFY col_name data_type CHARACTER SET charset_name COLLATE collation_name;
PHP 等語言連接 MySQL 時,亦需在代碼中設定字符集編碼(如 mysqli_set_charset()),保持前後端一致。
若控制台顯示問號/亂碼,嘗試導出 SQL 文件用文本編輯器打開,可能驚喜發現中文完好無損——說明存儲正確,僅是終端顯示問題。可嘗試 SET NAMES gbk 等命令切換終端字符集。