近两天偶在学习用PHP开发“用户管理系统”,但是在页面制作完成测试时出现了问题,表现在:在“找回密码”的测试过程中,在下面这步出现了乱码,如图:

解决方案 »

  1.   

    你的PHP程序本身就已经损坏了,看看你是否把GBK存为ASCII了
      

  2.   

    现在打开这个乱码的文件,如果还能看到中文,那就另存为gbk或utf-8格式,然后在HTML <head>标签里声明页面的编码。
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    或GBK:
    <meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
      

  3.   

    因为你以单字节编码ASCII来保存中文,所以你会发现中文怎么都成了问号。
    还是我之前说的,打开你的程序文件,看看还能否看到中文,如果能,就保存为多字节编码,例如GBK,UTF-8
    如果是问号,那么就只能重新写了。
      

  4.   

    当从数据库读取的内容大多数被显示成问号时
    多半的原因是字段的连接校对是默认的 latin1,但却以 utf8 编码操作
      

  5.   

    共有三个一致:
    1.php页面
    2.从数据库读的数据
    3.保存时的编码三者必须一致
      

  6.   

    你在 phpmyadmin 中看一下是否是乱码
    如果不是,那贴出查询出来的内容
    比如出啊熏出来的在 $row['xxx'] 中
    那么 echo base64_encode($row['xxx']); 贴出结果如果也是乱码,那么多半无解。不过也可像上面那样做一下,看看是否有希望
      

  7.   

    这是我在phpmyadmin里面查看到的信息,question与answer两处显示的都是乱码,其他都正常!
      

  8.   

    unpack('H*', 读出来的字符串);贴一下这个结果我看看
      

  9.   

    这个乱码是latin1在utf-8环境下的表现
    因此你可以在读取问题的代码前,加一句 
    mysql_query('set names latin1');
    然后网页的呈现还是UTF-8编码
      

  10.   

    你先试一下其他人说的方法是否可行,因为那些毕竟简单些
    unpack是php的函数,要自己写
      

  11.   

    修改从数据库读取问题的那段代码:
    // 你的代码
    // mysql_connect();
    // mysql_select_db();
    // 加入这一句
    mysql_query('set names latin1');
    // 你的代码
    // $result = mysql_query('select * from ....');
    // $row = mysql_fetch_assoc($result);
    然后如果还是乱码的话,就需要检查一下网页<meta>标签里声明的是不是UTF-8了,如果不是,改成UTF-8至于为什么要加这句,因为你的数据在录入的时候被转换为了latin1编码存储