今天用php+mysql做一个Project遇到了中文乱码问题。下图(几个???应该是中文显示区域):

这种问题在开发时候是常见的,当然是mysql字符与html中header头文件上指定的字符集不统一引起的,以前也遇到过这个问题,当时采用的方法是在打开MySQL服务器连接的后面,链接数据库的前面加入转换mysql字符集的方法:
mysql_query("set names 'gbk'");
把从mysql中读出来的数据转换为gbk字符集,head中的设置自然是
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
今天的问题是我的页面使用的utf-8的字符集,而在我使用转换语句mysql_query("set names 'utf-8'");的时候无效,又不想因为字符集的问题而改变所有页面的charset。
解决方法如下,修set names语句为:
mysql_query("SET character_set_connection=uft-8 , character_set_results=utf-8, character_set_client=binary, sql_mode='' ");
即可在字符集为utf-8的网页中正确的读取/显示中文字符了。

为了更清楚的说明我的方法,贴我的connection中一段代码出来,注意转换字符集语句的放置位置。
require 'includes/config.php';
//打开MySQL服务器连接
$connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
if (!$connection){
die("Database connection failed:" . mysql_error());
}//修改字符集
mysql_query("SET character_set_connection=uft-8 , character_set_results=utf-8, character_set_client=binary, sql_mode=''");//链接数据库
$db_select = mysql_select_db(DB_NAME,$connection);
if(!$db_select){
die("Database selection failed:" . mysql_error());
}

找了这么多相关文章,还是这篇写得最完整最全面!
多谢博主!!!!
解决了我好多天的问题!
刚好需要,谢谢博主!