PHP代码中MYSQL乱码使用SET NAMES utf8校正
分类:PHP评论:1条作者:雨尚日期:2011-08-18
PHP代码中mysql乱码使用SET NAMES utf8校正
数据库里是utf8编码方式,页面上也用的是utf8方式,但是汉字在页面上不能正常显示,全是乱码,但在数据库里面却显示正常。甚是奇怪。下面这段是页面里的设置:
$link=mysql_connect(“localhost”,”root”,”");
$db=mysql_select_db(“aaa”);
mysql_query(“set names utf8″,$link);
然后就是数据库的操作。
问题就出在这,仅仅是个人理解,不一定正确,但能解决问题:
mysql_query(“set names utf8″,$link);这句话的意思是引用数据库数据时用utf8方式,但是页面显示却要用gbk方式,所以要进行编码转换,而且要在对数据库操作之前进行,所以就要再加上一句话:mysql_query(“SET NAMES gbk”);//在对数据库操作前要进行编码转换
注意页面读出的编码是把原来编码的内容重新经过编码后输出的,比如输出内容所在页面是GBK编码,那么在读出的时候在页面显示也为乱码,所以在查询之前执行 mysql_query(“SET NAMES gbk”),在页面就可以正常显示GBK编码的文字内容 。
所以正确的写法是:
$link=mysql_connect(“localhost”,”root”,”");
$db=mysql_select_db(“aaa”);
mysql_query(“set names utf8″,$link);
mysql_query(“SET NAMES gbk”);

最新评论
my blog is i»
Post: 2012-02-15 05:34:01My buddy and»
Post: 2012-02-14 15:00:04I got what y»
Post: 2012-02-13 23:49:02Aw, this was»
Post: 2012-02-13 23:05:38wonderful po»
Post: 2012-02-10 13:42:50An engrossin»
Post: 2012-02-10 12:09:51Hello just w»
Post: 2012-02-09 20:03:14Your content»
Post: 2012-02-09 00:17:45An interesti»
Post: 2012-02-08 21:01:19An intriguin»
Post: 2012-02-08 21:01:19