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

解決 MySQL 導入還原亂碼問題完整指南

     編輯:MySQL 資料庫相關知識

亂碼根因分析

MySQL 導入亂碼本質是字符集不一致:導出、文件編碼、導入、數據庫/表定義、連接字符集任一環節不匹配即會導致亂碼。

三步解決法

步驟一:建庫建表統一指定 UTF-8

CREATE DATABASE `shegongku` DEFAULT CHARACTER SET utf8;
CREATE TABLE `members` (
    `uid` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
    `username` VARCHAR(15) NOT NULL DEFAULT '',
    `password` VARCHAR(40) NOT NULL DEFAULT '',
    `salt` VARCHAR(16) DEFAULT NULL,
    `email` VARCHAR(60) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

建議統一使用 utf8mb4(支援完整 Unicode,含 Emoji),若兼容舊版本可用 utf8。

步驟二:SQL 文件編碼轉換 + 指定連接字符集

  • 用 Notepad2、UltraEdit 等工具將 .sql 文件轉為 UTF-8 編碼
  • 文件首行添加 SET NAMES utf8; 並保存

步驟三:導入執行

在目標數據庫中執行 SOURCE utf8.sql; 完成導入。

終端顯示亂碼排查

若導入後數據正常但終端查詢顯示亂碼,屬於終端顯示編碼問題,非數據問題。執行 SET NAMES gbk; 即可正常顯示中文(Windows CMD 默認 GBK)。

最佳實踐總結

  1. 全鏈路統一字符集:庫、表、連接、文件、客戶端
  2. 優先使用 utf8mb4 避免 4 字節字符截斷
  3. 導出時加 --default-character-set=utf8mb4 --hex-blob
  4. 導入前檢查文件編碼與首行 SET NAMES
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved