一般情况下set names 一下总是保险的,有时是必须的。
引用:
好,你只要保证你的写着INSERT SQL语句的PHP文件编码为GB2312,那么恭喜你,你使用写着SELECT SQL语句的GB2312编码的PHP文件读取出来的数据也是GB2312的。
同理,只要你插入数据库的PHP文件是UTF-8编码,那么你录入的就是UTF-8的,读取出来同样使用编码为UTF-8的读取。
没有错,也的确不用设置MySQL,但后果是MySQL里很可能是乱码,不方便查看和日后导出数据。
我做了个小小的实验来验证
MySQL版本:5.0.27
页面编码是utf-8(无标签)
MySQL的字符集为utf8-general-ci
insert正常,select显示正常,但查看MySQL记录却是乱码,我使用phpmyadmin和nativate查看都是这个结果。
PS:不知道你所用的phpmyadmin是什么版本,至少2.9.2的编码都是默认编码。