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

解決 MySQL 匯入 SQL 腳本時中文亂碼問題

     編輯:MySQL 資料庫相關知識

將包含中文的 SQL 腳本(如 stu_data.sql)匯入資料庫 stu_data 時,常遇到中文亂碼。單純修改 my.ini 中的 default-character-set=utf8 往往無法解決,需從匯出、匯入兩端同步設定字元集。

正確解決方案

1. 資料匯出端:指定 UTF-8 編碼

使用 mysqldump 導出時,明確指定字元集:

mysqldump -u root -p --default-character-set=utf8 db_name > dump.sql

或在圖形工具(如 Navicat、Workbench)匯出設定中,將編碼選項設為 UTF-8。

2. 資料匯入端:使用 mysql 客戶端指令並設定字元集

進入 MySQL 命令列,依序執行:

mysql -u root -p
USE stu_data;
SET NAMES utf8;
SOURCE stu_data.sql;

關鍵點:SET NAMES utf8 等同於同時設定 character_set_client、character_set_connection、character_set_results 三個變數,確保客戶端與伺服器通訊全程使用 UTF-8,避免「存入時轉碼、讀出時再轉碼」導致的雙重編碼錯誤。

常見誤區

  • 僅修改 my.ini 的 default-character-set,未在匯入會話中執行 SET NAMES。
  • 匯出時未指定字元集,導致原始檔案已非 UTF-8。
  • 使用 source 指令前未切換至目標資料庫(USE db_name)。

驗證方式

匯入完成後,執行 SELECT * FROM table_name WHERE column LIKE '%中文%'; 檢查資料是否正常顯示。若仍有亂碼,請檢查資料表、欄位本身的 CHARSET 定義(SHOW CREATE TABLE table_name)。

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