http://blog.csdn.net/yishiyichen/article/details/5775180
A:
可能你会发现经php查询数据库后显示在网页页面上的中文发生乱码,其原因是由于网页默认的编码和mysql的编码不一致造成的,这时你需要在查询或插入语句前使用 mysql_query(“SET NAMES utf8”);

进行强制编码,以达到和网页编码一致的效果,从而解决了中文乱码的问题。

B:
总之一句话,要解决PHP中文乱码最好最快的解决办法就是,页面申明的编码与数据库内部编码一致,如果页面申请的页码与数据库内部编码不一致时,就设定连接编码 ,mysql_query(“SET NAMES XXX “); XXX为连接编码.一定可以解决乱码的问题.

C:
我在php的前面加上
header(“Content-Type: text/html; charset=gb2312″);

<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />

页面编码是GBK.

在查询的时候加上mysql_query(“SET NAMES XXX “);
ajax就出现乱码
解决:
ajax的时候,在查询之前手动设定mysql_query(“SET NAMES XXX “);
php页面的查询的时候不要加上mysql_query(“SET NAMES XXX “);