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

MySQL SOURCE 導入亂碼問題排查與解決方案

     編輯:MySQL 資料庫相關知識

MySQL 命令行導入 SQL 文件亂碼終極排查指南

使用 SOURCE 命令導入備份文件時出現亂碼,核心原因是**文件編碼、連接字符集、表字符集**三者不一致。按以下步驟逐層排查。

標準排查三步走

  1. 確認目標庫/表字符集
    SHOW CREATE DATABASE db_name;
    SHOW CREATE TABLE tbl_name;
    假設為 gbk。
  2. 設置連接字符集匹配
    登入 MySQL 後執行:
    SET NAMES gbk;
    (等同於同時設置 character_set_client、connection、results)
  3. 導入並驗證
    SOURCE d:/backup/20080613.sql;
    查詢幾條數據確認無亂碼。

進階:文件編碼不匹配時的處理

若上述步驟仍亂碼,說明 **SQL 文件本身編碼**與目標庫不一致。解決辦法:

  1. 用編輯器(Notepad++、VS Code、UltraEdit)打開 .sql 文件,查看/轉換編碼。
  2. 另存為目標字符集(如 GBK/UTF-8)。
  3. 重新執行 SET NAMES 目標字符集; 後 SOURCE。
  4. 反覆嘗試常見編碼(GBK、UTF-8、GB2312、Latin1)直到正常。

同理可解決 Web 應用寫入亂碼

Web 端亂碼同樣是**頁面編碼、連接字符集、表字符集**三者不一致。解決路徑:

  • 頁面 <meta charset="gbk"> 或 HTTP Header Content-Type: text/html; charset=gbk。
  • 數據庫連接建立後立即 SET NAMES gbk(PHP: mysql_query("SET NAMES gbk");Java JDBC URL 含 characterEncoding=GBK)。
  • 表字符集與之匹配。

核心原則

**源編碼 → 連接傳輸編碼 → 存儲編碼 → 讀取傳輸編碼 → 顯示編碼**
五環任一不匹配即亂碼。排查時按順序鎖定差異點。

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