一、乱码问题根源分析
中文乱码主要源于字符编码不统一,具体表现为以下三个层面:
- 数据库层面:MySQL默认Latin1编码与UTF-8编码冲突
- 传输层面:数据导入工具未指定字符集导致解码错误
- 文件层面:SQL文件编码与数据库存储编码不一致
错误编码 | 正确编码 |
---|---|
latin1 | utf8mb4 |
gb2312 | utf8 |
二、完整解决方案
1. 数据库配置修正
通过SSH连接数据库执行以下命令:
ALTER DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2. 文件编码转换
- 使用Notepad++将SQL文件转换为UTF-8 BOM格式
- 在文件首行添加
SET NAMES 'utf8mb4';
声明
3. 正确导入命令
mysql --default-character-set=utf8mb4 -u user -p db_name < dump.sql
三、操作结果验证
执行以下SQL语句确认编码状态:
SHOW VARIABLES LIKE 'char%';
预期应显示utf8mb4相关参数值。通过phpMyAdmin查看数据记录,中文字符应正常显示无乱码。
本文由阿里云优惠网发布。发布者:编辑员。禁止采集与转载行为,违者必究。出处:https://aliyunyh.com/589462.html
其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。