许多人可能会有这样的经验:明明全部系统都以 UTF-8 设置,但是用 phpMyAdmin 去看数据库时,发现中文字仍然是乱码。
若有发生这种情况,大多因为安装数据库时候指定默认的存储编码是latin1。因为
虽然 mysql 本身及网页都是 utf-8,但是mysql却用 latin1 将数据储存起来,因此是 utf-8 数据被以 latin1 的格式储存进数据库。
1、知道了原因解决办法就有了。
就是把数据以latin1的编码导出,这样导出的数据就不会乱码,再以utf-8导回数据库。
- mysqldump --all-databases --default-character-set=latin1 -u root -p > backup.sql
mysqldump --all-databases --default-character-set=latin1 -u root -p > backup.sql
2、修改 backup.sql 文件首页的:
/*!40101 SET NAMES latin1 */; 成为 /*!40101 SET NAMES utf8 */;
CHARSET=latin1 成为 CHARSET=utf8