共计 1299 个字符,预计需要花费 4 分钟才能阅读完成。
自动写代码机器人,免费开通
这篇文章给大家分享的是有关如何解决 phpmyadmin 导出 sql 文件乱码的问题的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。
phpmyadmin 导出 sql 文件乱码怎么办?
phpMyAdmin 版本是 2.9.1.1
用 phpMyAdmin 备份数据库,导出来后,在本地用 sqlyog 还原的时候,出现如下错误:
Error occured at:2009-03-03 10:09:43
Line no.:11154
Error Code: 1062 - Duplicate entry ?????? for key 2
打开 sql 文件看了下,会员表下的会员用户名是乱码,全都是类似于???,???? 的,因为现在很多程序都支持中文用户名了,而用户名又是唯一的,中文用户名变成乱码后,就出现很多相同的用户名,而我们导入这些出现乱码的数据时,前面已经有?????? 这个用户名了,所以下面出现第二个就报错了
如果有系统的控制权,可以用如下命令导出数据,就不会出现乱码,还原时是正常的
mysqldump -uroot -p --default-character-set=utf8 --set-charset --skip-opt dbname newdbname.sql
但现在只能用 phpMyAdmin 导出,测试了好久,发现如果 phpMyAdmin 的 Language 为 中文 -chinese simplified-gb2312 时,导出来的 sql 文件是 gb2312 的,某些表里有中文,中文为乱码,当 phpMyAdmin 的 Laguage 为 中文 -chinese simplified(也就是 utf8)时,导出来的 sql 文件字符集是 utf8 的 (用 Notepad++ 查看格式,显示是 UTF- 8 无 BOM 格式编码),表里的中文可以正常显示
所以,为避免导出来的文件里中文是乱码,可以从 Language 下拉菜单中,选择中文 -chinese simplified,然后再选择导出,下载回来的 sql 文件中的中文就可以正常显示了。
用如下命令还原
mysql -uroot -p --default-character-set=utf8 newdbname newdbname.sql
本来想把 phpMyAdmin 的默认 Language 修改为“中文 -chinese simplified,但试过修改 config.inc.php 和 libraries 目录下的 config.default.php 都没有用,没关系了,毕竟不同人选择数据库的编码都不一样的,总是有人要重新选择一下语言,还是让它默认是“中文 -chinese simplified-gb2312”吧!
猜测另外一种解决办法是,导出来的文件编码是 gb2312,所以可以考虑将 gb2312 转换为 utf8. 此方法试验中。
感谢各位的阅读!关于“如何解决 phpmyadmin 导出 sql 文件乱码的问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
向 AI 问一下细节