确保字符集统一可解决MySQL导出乱码问题;2. 通过SHOW CREATE DATABASE/TABLE检查字符集是否为utf8mb4;3. 若非则用ALTER TABLE语句转换;4. 导出时使用mysqldump加--default-character-set=utf8mb4参数;5. 老版本MySQL可用utf8;6. 导出文件需以UTF-8编码打开或转换;7. 导入时也需指定相同字符集。

MySQL导出数据出现乱码,通常是因为字符集设置不一致导致的。只要确保客户端、数据库、表以及导出文件的字符编码统一,就能解决这个问题。
检查数据库和表的字符集
先确认你的数据库和数据表使用的字符集是否为 UTF8 或 utf8mb4:
SHOW CREATE DATABASE 数据库名;SHOW CREATE TABLE 表名;
如果显示的字符集不是 UTF8 相关的(如 latin1),需要修改:
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;导出时指定正确的字符集
使用 mysqldump 导出时,加上默认字符集参数:
mysqldump -u用户名 -p --default-character-set=utf8mb4 数据库名 > 导出文件.sql注意:如果你的 MySQL 版本较老,可能要用 utf8 而不是 utf8mb4。
导入或查看文件时注意编码
导出后的 SQL 文件在文本编辑器中打开时,也要用对应的编码方式读取:
- 用 Notepad++ 打开时,选择“编码 → 转为 UTF-8 无 BOM”
- Linux 下可用 file -i 文件名 查看文件实际编码
- 导入时同样要指定字符集:
mysql -u用户名 -p --default-character-set=utf8mb4 数据库名
客户端连接也需设置编码
确保你连接 MySQL 时使用的客户端也用了正确的字符集:
SET NAMES 'utf8mb4';或者在配置文件 my.cnf(或 my.ini)的 [client] 和 [mysqld] 段落中添加:
[client]default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
基本上就这些。关键点是整个链路——数据库、表、连接、导出命令、文件存储——都使用一致的 UTF8 编码,乱码问题基本都能解决。










