首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

解決 MySQL 命令列中文亂碼問題(Windows/Linux)

     編輯:MySQL 資料庫相關知識

Windows 環境

臨時解決(當前連接有效)

-- 查看字元集變數
SHOW VARIABLES LIKE 'character%';

-- 設定結果集、連線、客戶端編碼為 GBK/GB2312
SET character_set_results = gbk;
SET character_set_connection = gbk;
SET character_set_client = gbk;

永久解決(修改配置文件)

編輯 my.ini,在對應區塊加入:

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

重啟服務後生效。建議統一使用 utf8mb4 支援 Emoji 與完整 Unicode。

CMD 代碼頁調整(輔助)

chcp 65001  -- 切換至 UTF-8 代碼頁
chcp 936    -- 切回 GBK

注意:CMD 字型需設為 TrueType(如 Consolas、NSimSun)才能正確顯示中文。

Linux (Ubuntu/CentOS) 環境

定位配置文件

find / -name "*.cnf" 2>/dev/null
# 常見路徑:/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/mysql/my.cnf

修改配置

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

重啟驗證

systemctl restart mysqld
# 或
service mysql restart

mysql -u root -p -e "SHOW VARIABLES LIKE 'character%';"

資料庫/表/欄位層級編碼檢查

SHOW CREATE DATABASE db_name;
SHOW CREATE TABLE tbl_name;
SHOW FULL COLUMNS FROM tbl_name;

避坑指南

  • 資料庫、表、欄位、連線四層編碼必須一致。
  • utf8 實為 utf8mb3,無法儲存 4 字節字符,請用 utf8mb4。
  • JDBC/ODBC/PHP PDO 連線字串需顯式指定 characterEncoding=utf8mb4。
  • mysqldump 導出時加 --default-character-set=utf8mb4。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved