macOS 10.8.3 / MySQL 5.6.10 / Workbench 5.2.47
指定系統 mysqldump 路徑:/usr/local/mysql/bin/mysqldump
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,避免亂碼。
/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/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost \
--default-character-set=utf8 mydb < ~/Desktop/users.sql
**只需兩步**:
CHARSET=utf8mb4 (支援 Emoji)characterEncoding=utf8mb4CREATE 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") 等惡性轉碼,根源在資料庫與連線字符集不一致。










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