<?php
$conn = mysql_connect("localhost","root","1234") or die("不能连接数据库服务器:".mysql_connect_errror());
mysql_select_db("messtest",$conn);
$results = mysql_query("select * from gbbook");
mysql_query($results,$conn);
mysql_query("set names 'gbk',$conn");
while($row = mysql_fetch_row($results)){
//echo $row[0]."".$row[1]."".$row[2]."".$row[3]."".$row[4];
echo $row[0]."  <p /> ".$row[1]."  ".$row[3]."  <p/>".$row[4];
echo"<br />";
}
//mysql_free_results($results);
//$results->free();
mysql_close($conn);
?>
PHPadmin里面都设为GBK了,
   表  操作  记录数  类型 整理 大小 多余 
 gbbook        ~3 InnoDB gbk_chinese_ci 16.0 KB - 
 product        ~3 InnoDB gbk_chinese_ci 16.0 KB - 
 2 个表  总计 ~6 InnoDB gbk_chinese_ci 32.0 KB 0 字节 
;;;;
查询之后:;;;;;中文可以显示;网页上还是显示第三行的所有内容,1.2行中文的都是????
主键排序:  PRIMARY (递增) PRIMARY (递减) 无       id  username  userpass  contest  time  
      1 教主言希 慕言君拂 测试一下 2012-10-15 11:15:42 
      2 永远的配角 222 增加一行信息,以便查看搜索到的记录 2012-10-15 14:22:35 
      3 asd qwe english is ok  2012-10-19 15:42:44 
     

解决方案 »

  1.   


    但是UTF8不是二进制的吗,在网页上能输出中文吗
      

  2.   

    mysql_select_db("messtest",$conn);
    mysql_query("set names 'gbk'",$conn");   //这句需要放在query的前面 
    $results = mysql_query("select * from gbbook");
    mysql_query($results,$conn);while($row = mysql_fetch_row($results)){
    ...........................另外,将你的php文件另存为gbk编码保存
    头部加上:header("content-type:text/html;charset=gbk");
      

  3.   

    看看你的程序编辑器的编码 是否是UTF-8
      

  4.   

    编码三部曲:
    1.数据库字段编码(存入(字段--整理)和取出(mysql_query("set names '编码'"))编码)
    2.文件编码(就是用记事本打开,另存时出现的保存类型下面的编码有ANSI,Unicode,utf-8)
    3.显示页编码(header("content-type:text/html;charset=gbk");)三个编码完全统一,基本就没问题了。
       一点浅薄的意见……