一个很小的留言板程序<?
  $mysql_server_name = "localhost";
  $mysql_username    = "root";
  $mysql_password    = "123456";
  $mysql_database    = "gbook";
  
  $sql = "SELECT * FROM gbook ORDER BY 'id' DESC"; //排序 后留言的在前面显示
  $conn = mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
  
  mysql_select_db($mysql_database,$conn);
  
 $result = mysql_query($sql);
  while($row = mysql_fetch_row($result))
  {  // ----if语句判断男女------
          if($row[2]==1)
     {   $gender = '男';}
       else
     {   $gender = '女'; }
?>
<table width="752" border="1">
  <tr>
    <td height="32"><p><?=$row[6]?> <?=$row[5]?> </p>
    <p><?=$row[1]?>(<?=$gender?>)  <?=$row[3]?></p></td>
  </tr>
  <tr>
    <td height="45"><?=nl2br($row[4])?><p><a href="change.php?id=<?=$row[0]?>">[修改]</a> <a href="del.php?id=<?=$row[0]?>">[删除]</a></p></td>
  </tr>
</table>
<hr />
<?
  }
  mysql_free_result($result);
  
?>
结果页面输出是乱码, 页面的编码 也变成了 gb312   原来输入的 是UTF 8手动将页面编码换成 utf8后  还是有一点乱码出现应该如何解决??

解决方案 »

  1.   

    不好意思 图的次序按了`反了 第二张图是BGK2312编码的
      

  2.   

    数据库连接后, 加mysql_query("set names utf8"); 或者加mysql_query("set names gb2312");试试
      

  3.   

    数据库连接后, 加mysql_query("set names gbk"); 
      

  4.   

    加上: mysql_query("set names utf8"); 以utf8编码取数据。
      

  5.   

    MySQL+PHP产生乱码原因:◆ MySQL数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MySQL乱码;◆ MySQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码;◆ MySQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码;◆ 用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码;◆ 如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码;◆ PHP页面字符集不正确;◆ PHP连接MySQL数据库语句指定的编码不正确。解决办法参考:http://www.phpnewer.com/index.php/Cjwt/detail/id/558
      

  6.   

    问题基本解决啦, 首先 设置PHP, 把php的默认输出 由 GBK 改为 utf-8
    其次设置 MYSQL  把服务端和客户端的编码 都 设置为 UFT8
    3 在数据哭操作前加入 mysql_query("set names utf8;"); 
    4 把所有 *.php 文件的编码改为  utf-8
    现在网页上的提交和显示 都正常了新的问题是在CMD 状态开 MYSQL  显示乱码了; 用 SET NAMES UTF8  不管用