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

MySQL 字符集查看方法總覽:伺服器、資料庫、資料表、欄位四層級檢查

     編輯:MySQL 資料庫相關知識

MySQL 字符集分層管理,排查亂碼問題需從伺服器、資料庫、資料表、欄位四個層級逐級檢查。本文提供三種最常用的查看指令與輸出解讀。

一、查看伺服器與資料庫層級字符集

SHOW VARIABLES LIKE '%char%';

關鍵輸出欄位解讀:

變數名含義典型值
character_set_client客戶端發送編碼utf8
character_set_connection連線層轉換編碼utf8
character_set_database當前資料庫預設編碼utf8
character_set_server伺服器預設編碼utf8
character_set_system系統識別符編碼(固定 utf8)utf8
character_sets_dir字符集檔案目錄路徑

二、查看資料表字符集

SHOW TABLE STATUS FROM db_name LIKE 'table_name';

關注欄位:

  • Collation:如 utf8_general_ci 表示表預設字符集為 utf8
  • Row_format、Engine 等亦可參考

三、查看欄位字符集

SHOW FULL COLUMNS FROM table_name;

關注欄位:

  • Collation:欄位級字符集,如 utf8_general_ci
  • 數值型欄位 Collation 為 NULL(不適用字符集)

字符集層級繼承關係

  1. 伺服器預設 (character_set_server) →
  2. 資料庫預設 (character_set_database) →
  3. 資料表預設 (建表時 DEFAULT CHARSET) →
  4. 欄位預設 (建欄位時 CHARACTER SET)

修改建議:

  • 新專案建庫建表時統一指定 utf8mb4
  • 既有資料庫修改需依序執行 ALTER DATABASE、ALTER TABLE ... CONVERT TO CHARACTER SET、ALTER TABLE ... MODIFY COLUMN
  • 連線端同步設定 SET NAMES utf8mb4 或連線參數 charset=utf8mb4

四層級檢查法能快速定位編碼不一致的層級,精準解決亂碼根因。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved