因服务器迁移需要重新导数据,但是由于数据库乱码折腾了好久,泪崩……
mysql8 默认字符集已修改为utf8mb4
默认使用mysqldump导出数据会默认编码为utf8mb4
解决方案:
导出:mysqldump -uuser -p --default-character-set=utf8 dbname > dbname .sql
导入:mysql -uuser -p --default-character-set=utf8 dbname < dbname .sql
注意: php代码在连接数据库时一定要设置编码为 utf8
$this->mySQLI->set_charset('utf8');
如果是使用的mysql老版本,在表不是很大又乱码的情况,可以考虑转存储为json文件,通过代码的方式解决乱码的问题