有关mysql数据库的编码
今天在通过表单给php提交数据,然后插入到数据库中。网页与php的编码格式均为utf-8,在插入到数据库中时也设置了$this->query("set names utf8;");
但是还是出现了在mysql中读取数据出现乱码和问号的情况。后来实在是无解,将mysql设置为gbk编码,居然能正确的显示,简直就是颠覆了三观。。至今不知道为什么。
但是在这过程中也了解到了一些有关编码的知识:
在mysql中设置mysql的编码通过修改配置文件my.ini,该文件在mysql的安装路径下。
[mysql //客户端
default-character-set=utf8
[mysqld] //服务器端
character-set-server=utf8
在mysql客户端下操作:
SHOW VARIABLES LIKE 'character%';查看字符集
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”);