表单传值:
用$_POST和$_GET不会显示出乱码,但是请看以下的HTML原码:Array
(
    [0] => 1
    [1] => ?
    [2] => 0
    [3] => [email protected]
    [4] => ?
    [5] => 127.0.0.1
    [6] => 2007-12-09 17:47:02
)以上有两个问号,是Mysql数据库字段内中文内容,我晕,调了好久.....以下是PHP原码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head><?php 
      //echo $_POST['name'].'<p>'.$_POST['sex'].'<p>'.$_POST['email'].'<p>'.$_POST['info'];
      $mysql_server_name="localhost";
  $mysql_username="qwf";
  $mysql_password="1234";
  $mysql_database="mydb";
  
  $ip=getenv('REMOTE_ADDR');
  //error_reporting(E_ALL);
  
  $conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
  //$sql="INSERT INTO `mydb`.`qbooks` (`id` ,`name` ,`sex` ,`email` ,`info` ,`ip` ,`time_at` )VALUES (NULL , '$_POST['name']', '$_POST['sex']', '$_POST['email']', '$_POST['info']', '$ip', NOW( ) )";
  $sql="INSERT INTO `mydb`.`qbooks` (`id` ,`name` ,`sex` ,`email` ,`info` ,`ip` ,`time_at` )VALUES (NULL , '".$_POST['name']."', '".$_POST['sex']."', '".$_POST['email']."', '".$_POST['info']."', '$ip', NOW( ) )";
  
  mysql_select_db($mysql_database,$conn);
  
  $result=mysql_query($sql);
  
  $id=mysql_insert_id();
 
  
?>
<?php
   $sql="SELECT * FROM Qbooks";
   
   $conn=mysql_connect( $mysql_server_name,$mysql_username,$mysql_password);
   $result=mysql_db_query($mysql_database,$sql,$conn);
   
   while( $row=mysql_fetch_row($result))
   {
?>
<table width="89%" height="164"  border="1" cellpadding="0" cellspacing="5" bordercolor="#0099FF">
  <tr>
<td width="15%" height="31" align="right">姓名:</td>
<td colspan="2" align="left"><?=$row[1]?> </td>
<td width="70%">文章内容:</td>
  </tr>
  <tr>
<td width="15%" height="27" align="right">性别:</td>
<td colspan="2" align="left"><?=$row[2]?></td>
<td width="70%" rowspan="4" align="left" valign="top"><?=$row[4]?></td>
  </tr>
  <tr>
<td width="15%" height="28" align="right">客户IP:</td>
<td colspan="2" align="left"><?=$row[5]?></td>
  </tr>
  <tr>
<td width="15%" height="23" align="right">邮箱:</td>
<td colspan="2" align="left"><?=$row[3]?></td>
  </tr>
  <tr>
<td width="15%" height="23" align="right">留言时间:</td>
<td colspan="2" align="left"><?=$row[6]?></td>
  </tr>
</table>
<hr>
<?php
      //print_r($row);
   }
mysql_free_result($result);
mysql_close($conn);

 ?>
 </html>怎么样才能显示数组内的中文值,高手帮忙

解决方案 »

  1.   

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Language" content="CHINESE" />
    </head>
    加这个。
      

  2.   

    编码的问题,网页编码与数据库里的一样就可以了,
    如:<meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312"> 你这里用gb2312
    数据库里也要gbk.的或gb2312就不会出现乱码了.在设计时就应该考虑了...
      

  3.   

    <head> 
    <meta   http-equiv="Content-Type"   content="text/html;   charset=UTF-8"   /> 
    <meta   http-equiv="Content-Language"   content="CHINESE"   /> 
    </head
    加这个也不行 还是问号,
    MySQL 字符集: UTF-8 Unicode (utf8) 还是不行啊,急~~~~~
      

  4.   

    1.页面:<meta http-equiv="Content-Type"       content="text/html;       charset=UTF-8"       />  
    2.数据库:MySQL   字符集:   UTF-8   Unicode   (utf8) 
    3.把页面用记事本打开,另存为UTF-8
    如果程序里调用了别的页面,别的页面也要转UTF-8
      

  5.   

    mysql> SHOW VARIABLES LIKE 'character_set%';
    先用↑查看你的数据库的字符集。character_set_database若是utf8,
    在mysql_connect(...)语句后面加上: mysql_query("set names utf8");
      

  6.   

    mysql_query("set names 'gb2312'");成功了,谢谢了,郁闷了一个下午,用mysql_query("set   names   utf8"); 
    不行