最近,在做php开发,用的是mysql数据库。
用php操作往mysql中添加的中文,都成了乱码,不仅在phpmyadmin中显示是乱码,而且无法进行中文对比。比如,明明插入的是“你好”,通过sql语句where hello='你好'就是查不到这个结果。
这个应该是字符集的问题,我发现mysql默认的字符集(即:整理)是lat1-sewiden-ci,这显然不正确。之后我把原来的varchar字段的整理改成了gb2312-chinese-ci,试了下,还是无效。
我删除整个数据库,全部用gb2312来建数据库、表、字段。还是无效。
后来,我网站找到了两种方法:
一、在数据库链接的时候设置一个参数 mysql_query("SET NAMES 'GBK'");。例如,我常用的
<?php $myconn=@mysql_connect("localhost","root","");
mysql_select_db("study",$myconn);
mysql_query("SET NAMES 'GBK'");
?>
二、就是修改mysql的my.ini文件
在my.ini文件中找到“default-character-set=lat1”,改成“default-character-set=gb2312”.
记得修改这个参数以后,必须重启mysql,否则设置无效!