答案是字符编码不一致导致乱码。需确保MySQL使用utf8mb4编码,导出时指定UTF-8字符集,Excel导入选择UTF-8编码,程序导出时保持连接与文件编码一致,避免CSV乱码。

MySQL导出Excel出现乱码,通常是因为字符编码不一致导致的。最常见的场景是从数据库导出数据到CSV或直接生成Excel文件时,中文显示为乱码。下面从几个关键环节给出解决方法。
检查数据库、表和字段的字符集是否为 UTF-8(推荐使用 utf8mb4):
SHOW CREATE DATABASE 数据库名;
SHOW CREATE TABLE 表名;
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
使用 mysqldump 或 SQL 查询导出时,务必声明字符集:
mysqldump -u用户名 -p --default-character-set=utf8mb4 数据库名 表名 > 导出文件.sql
SELECT * FROM 表名 INTO OUTFILE '/路径/文件.csv' CHARACTER SET utf8mb4 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Excel 默认用 ANSI 打开CSV,容易导致UTF-8中文乱码。解决方法:
如果用 Python、PHP 等脚本导出 Excel,需确保:
set_charset("utf8mb4"))openpyxl 或 xlsxwriter,它们原生支持 UTF-8基本上就这些。关键点是:数据库编码统一为 utf8mb4,导出过程保持 UTF-8,Excel 导入时选对编码。只要中间任意一环出错,就可能出现乱码。
全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号