我是新手,通过phpmyadmin建了一个表,字段名为uname ,类型为varchar(50) 我添加数据“张三” 但是显示为“??”,请问这是怎么回事?

解决方案 »

  1.   

    编码问题存储的时候用 mysql_query('set names utf8');把 utf8 换成你对应的编码 
      

  2.   

    我存储的时候用的utf8_bin,从phpmyadmin里看到是正常的,但是我用页面显示出来的时候,还是“??”这是为什么?
      

  3.   

    phpmyadmin也是采用php读取数据的
    试试iconv
      

  4.   

    如果你的数据库的建立是在 phpmyadmin 的编码之前建立的。那么你需要更改你每一个字段的编码属性。
    否则更改 phpmyadmin 的编码为中文之后,再建立数据库就可以了。我的原来问题和你一样。
      

  5.   

    字段的整理属性由latin1_swedish_ci  改为  gb2312_bin 就OK乐。中文才会出现。
      

  6.   

    我是该为了gb2312_bin ,但是还是没有出现哦,郁闷死了
      

  7.   

    1.插入/查询数据之前mysql_query("set names utf8");
    2.页面保证为utf-8(meta标签设置,或者php的header)
      

  8.   

    我页面有问题吗?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head><body>
    <br><br><br><br><br><br>
    <table width="500" border="1" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <?
      $myconn=mysql_connect("localhost","root","");
      mysql_select_db("hupeng");
      $strSql="select * from user";
      $result=mysql_query($strSql,$myconn);
    while($row=mysql_fetch_array($result))//通过循环读取数据内容
    {
    ?>
      <tr>
        <td><? echo $row["uid"]?></td>
        <td><? echo $row["uname"]?></td>
        <td><? echo $row["uage"]?></td>
      </tr>
    <?
    }
    //关闭对数据库的连接
    mysql_close($myconn);
    ?></table>
    </body>
    </html>
      

  9.   

    这是我的表结构
      字段   类型   整理   属性   Null   默认   额外   操作
    uid  int(10)  否  auto_increment  Browse distinct values  更改  删除  主键  唯一  索引  全文搜索
    uname  varchar(50)  gb2312_bin  否  Browse distinct values  更改  删除  主键  唯一  索引  全文搜索
    uage  varchar(50)  gb2312_bin  否  Browse distinct values  更改  删除  主键  唯一  索引  全文搜索
      

  10.   

    你的页面是gb2312,那么你从mysql那边要保证得到gb2312的数据,你的浏览器才读得懂得到的数据,才不会乱码。就好像你听不懂西班牙语,你就去请个西班牙语的翻译,你不可能去请个讲越南语的家伙来帮你翻译。
    怎么保证?在查询数据之前mysql_query("set names gb2312")一下,让mysql返回gb2312编码的数据。
      

  11.   

    请问,mysql_query("set names gb2312") 放在页面的那个位置?
      

  12.   

    ...
    mysql_query("set names gb2312");
    $strSql="select * from user"; 
    ....
      

  13.   

    应该是你的代码文件编码跟网页编码、数据库编码不一致造成的。
    比如数据库编码是UTF-8,那么以下3项有一个不是UTF-8都会出现乱码:1.代码文件编码类型UTF-8   //这点很容易被忽视
    2.PHP查询前执行mysql_query("set names utf8");
    3.网页指定编码:
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      

  14.   

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    问题在这里啊
      

  15.   

    超简单,是因为你没有处理好字符集的问题
    新建数据库的时候把整理选择成utf8-general-ci
    你把下面这一句加到第一次查询前
    mysql_query("SET character_set_connection=gb2312, character_set_results=gb2312, character_set_client=binary");
    其中gb2312为网页的字符集