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

MySQL 中文亂碼、匯出 SQL/Excel、Java 寫入亂碼完整解決方案

     編輯:MySQL 資料庫相關知識

環境

macOS 10.8.3 / MySQL 5.6.10 / Workbench 5.2.47

一、匯出資料

1. Workbench 匯出版本不符

指定系統 mysqldump 路徑:/usr/local/mysql/bin/mysqldump

2. 匯出 Excel (含中文)

cd /usr/local/mysql/bin
./mysql -hlocalhost -uroot -p123456

USE mydb;
-- 轉碼輸出到 /usr/local/mysql/data/out.xls
SELECT CONVERT(name USING gbk), CONVERT(addr USING gbk)
FROM users
INTO OUTFILE 'out.xls'
CHARACTER SET gbk
FIELDS TERMINATED BY '\t'
ENCLOSED BY ''
LINES TERMINATED BY '\n';

關鍵:CONVERT(... USING gbk) 將 UTF-8 資料轉為 Excel 預設 GBK,避免亂碼。

3. 匯出 INSERT SQL

/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost \
  -t --extended-insert=false --default-character-set=utf8 \
  mydb users > ~/Desktop/users.sql

參數說明:

  • -t:不含 CREATE TABLE
  • --extended-insert=false:單行單 INSERT,避免超長 SQL
  • --default-character-set=utf8:強制輸出 UTF-8

4. 匯入 SQL

/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost \
  --default-character-set=utf8 mydb < ~/Desktop/users.sql

二、Java 寫入中文亂碼徹底解決

**只需兩步**:

  1. 建庫/建表指定 CHARSET=utf8mb4 (支援 Emoji)
  2. JDBC URL 加 characterEncoding=utf8mb4
CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE users (...) DEFAULT CHARSET=utf8mb4;

jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8mb4&useSSL=false&serverTimezone=Asia/Taipei

**不要**在 Java 碼裡 new String(bytes, "ISO-8859-1") 等惡性轉碼,根源在資料庫與連線字符集不一致。

三、圖示驗證

Workbench 版本錯誤

指定 mysqldump 路徑

匯出 Excel 設定

匯出 SQL 參數

mysql 控制台

USE 資料庫

CONVERT USING gbk

建庫 utf8mb4

建表 utf8mb4

JDBC URL 參數

結語

中文亂碼本質是**字符集不一致**。統一「資料庫 utf8mb4、表 utf8mb4、連線 utf8mb4、匯出指定字符集」,Excel 匯出再加 CONVERT USING gbk,即可一勞永逸。

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