首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQLyog 中文亂碼終極解決方案:字元集設定與字型調整

     編輯:關於SqlServer

問題現象

SQLyog 連接 MySQL 後,資料庫、資料表、欄位名稱或資料內容顯示為亂碼(如 `???`、``、亂碼字串),常見於中文環境。

根本原因

MySQL 連線字元集三要素不一致:

  • character_set_client:客戶端發送 SQL 的編碼
  • character_set_connection:伺服器解析 SQL 時的編碼
  • character_set_results:伺服器回傳結果的編碼

若三者不一致,或與資料表實際儲存編碼(CHARSET)不符,即會產生亂碼。

方案一:臨時設定(僅當前 Session 有效)

在 SQLyog 查詢視窗執行:

SET NAMES utf8mb4;
-- 等同於:
SET character_set_client = utf8mb4;
SET character_set_connection = utf8mb4;
SET character_set_results = utf8mb4;
> ⚠️ 重新連線後失效,適合臨時測試。

方案二:永久修正 MySQL 伺服器預設字元集(推薦)

  1. 編輯 MySQL 設定檔(my.cnf / my.ini),在 [mysqld] 區段加入:
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
  1. 重啟 MySQL 服務。
  2. 新建資料庫/資料表將自動繼承 utf8mb4。

方案三:SQLyog 連線屬性設定(免改伺服器)

  1. SQLyog → 工具 → 連線管理器 → 編輯目標連線。
  2. 切換到「進階」或「字元集」頁籤(視版本而定)。
  3. 將「字元集」設為 utf8mb4(或 utf8)。
  4. 儲存並重新連線。

方案四:SQLyog 字型設定(解決介面顯示亂碼)

若資料實際正確但介面顯示亂碼,通常是字型不支援中文:

  1. 工具 → 偏好設定 → 編輯器 → 字型。
  2. 選擇支援中文的等寬字型:Consolas、Microsoft JhengHei UI、新細明體、Monospace。
  3. 大小建議 10-12pt,確定後重啟 SQLyog。

驗證步驟

-- 1. 檢查連線字元集
SHOW VARIABLES LIKE 'character_set_%';

-- 2. 檢查資料庫/資料表/欄位字元集
SHOW CREATE DATABASE db_name;
SHOW CREATE TABLE table_name;

-- 3. 實際寫入/讀取測試
CREATE TABLE t_test (c VARCHAR(20) CHARSET utf8mb4);
INSERT INTO t_test VALUES ('中文測試');
SELECT * FROM t_test;

常見誤區

誤區正確觀念
以為資料壞了多半是「讀取編碼 ≠ 寫入編碼」,資料本身完好,修正連線字元集即可恢復
使用 utf8 而非 utf8mb4MySQL 的 utf8 僅支援 3 位元組(BMP),無法儲存 Emoji、生僻字,**務必用 utf8mb4**
只改資料表 CHARSET連線字元集、資料庫預設、資料表預設、欄位 CHARSET 四層皆需一致

遷移既有 latin1/utf8 資料至 utf8mb4

-- 1. 資料庫層級
ALTER DATABASE db_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

-- 2. 資料表層級(含所有欄位)
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 3. 單一欄位(若不想全表轉換)
ALTER TABLE table_name MODIFY col_name VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved