使用 SOURCE 命令導入備份文件時出現亂碼,核心原因是**文件編碼、連接字符集、表字符集**三者不一致。按以下步驟逐層排查。
SHOW CREATE DATABASE db_name;SHOW CREATE TABLE tbl_name;gbk。SET NAMES gbk;character_set_client、connection、results)SOURCE d:/backup/20080613.sql;若上述步驟仍亂碼,說明 **SQL 文件本身編碼**與目標庫不一致。解決辦法:
SET NAMES 目標字符集; 後 SOURCE。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)。**源編碼 → 連接傳輸編碼 → 存儲編碼 → 讀取傳輸編碼 → 顯示編碼**
五環任一不匹配即亂碼。排查時按順序鎖定差異點。