今天在经过表单给php提交数据,而后插入到数据库中。网页与php的编码格式均为utf-8,在插入到数据库中时也设置了$this->query("set names utf8;");php
可是仍是出现了在mysql中读取数据出现乱码和问号的状况。后来实在是无解,将mysql设置为gbk编码,竟然能正确的显示,简直就是颠覆了三观。。至今不知道为何。mysql
可是在这过程当中也了解到了一些有关编码的知识:sql
在mysql中设置mysql的编码经过修改配置文件my.ini,该文件在mysql的安装路径下。数据库
[mysql //客户端服务器
default-character-set=utf8this
[mysqld] //服务器端编码
character-set-server=utf8server
在mysql客户端下操做:utf-8
SHOW VARIABLES LIKE 'character%';查看字符集io
SHOW VARIABLES LIKE 'collation_%';
解决乱码的方法是,在执行SQL语句以前,将MySQL如下三个系统参数设置为与服务器字符集character-set-server相同的字符集。 character_set_client:客户端的字符集。 character_set_results:结果字符集。 character_set_connection:链接字符集。 设置这三个系统参数经过向MySQL发送语句:set names utf8 即在PHP中执行:mysql_query(“set names utf8”);