事情是这样的,某天我试着用php改mysql数据库,可是脚本运行了太多次数据库插入的数据依然乱码,当时我就不高兴了,也没办法,必须弄出个像样的东西来,然后我就给每条mysql函数加条件判断(我是用的纯php函数,原生的代码),果然发现set names utf8执行出问题了。然而我看了很久才发现这句话在mysql_connect前执行的,我的天,简直不敢信,我居然把set names写在connect前面了!
重点是这样的:
php连接mysql进行数据读写需要在 mysql_connect 函数后加如下几句:
mysql_query("set character set utf8"); //客户端读取数据库的编码,一般没用
mysql_query("set names utf8"); //数据写入数据库的编码,这才是重点
如果是输出到浏览器的话要在代码最前面(php起始符之后)加header头:
header('content-type:text/html;charset=utf-8');