我们一般在用PHP进行Web开发的时候,总是会或多或少的碰到编码问题。一开始我没太在意,一直使用GB2312编码,最初一切都很顺利,可是到后期使用Ajax时,发现问题来了,而且不小。
使用Ajax时,只要编码是GB2312就会出现乱码,在第一行申明都没用。无奈之下,我只好换成utf-8,结果一切正常。Html文件的编码转换很方便,一般的编辑器软件都可以完成,比如EditPlus、EmEdit等都可胜任,可是数据库就麻烦了。
当我进入数据库,将所有表的编码都设置成utf-8,所以从数据库中读出来的数据全部显示乱码。但是,重新录入的数据则没有任何问题,可是怎样将这些老的数据也转换成utf-8呢?我想到了平时备份数据时直接进入phpMyAdmin里选择“导入”和“导出”功能。
不知这方法能否行得通,不如试试看吧。
第一步:进入phpMyAdmin后,先将数据库导出成sql文件,做好备份。然后再将sql文件复制一份到桌面,用记事本打开,直接将所有的“gb2312”替换成“utf8”。注意,是“utf8”,而不是“utf-8”,切记!(如图1)

第二步:返回phpMyAdmin,点击“操作”,最下面,可以看见有一个“校对”的下拉列表(如图2),选择“utf8”,然后点击“执行”,然后你就可以看见“您运行的 SQL 语句已经成功运行了。”

第三步:选择“导入”,将刚才桌面上的sql文件导入进来,注意下面“文件的字符集”同样选择“utf8”,点击“执行”。
这时大功告成,再打开浏览器,运行你的PHP程序,看看从数据库中显示的数据,是不是都正常了呢?