$oldState = "正常开通";
while($row = mysql_fetch_row($result))
{
$oldState = $row[0];
}
echo $oldState;//是乱码???
if($oldState == "主动停机") {////////比较不出来,永远是不等的???
echo "yes";
return true;
} else {
echo "no";
return false;
}问题:在源码的注释中。
我的数据库用的是gb2312编码,网页头部是utf-8。从数据库中取出的中文,怎么才能和网页中的双引号中的中文进行比较啊?
谢谢各位!

解决方案 »

  1.   

    连接数据库后执行
    mysql_query('set names utf8');
      

  2.   

    另外,我自己补充一下,就是我写的其他函数,是把网页中的含有中文的查询语句送去数据库MYSQL执行,也是不能执行成功;但是只含英文或者数字的语句就可以成功执行。
    所以,在数据库中的中文和在写代码时候的中文之间肯定有代沟。
    各位,请问怎么解决?谢谢大家!
      

  3.   

    我也补充一下,你的网页头部是utf-8,所以你的程序文件一定要保存为无BOM的utf-8格式
      

  4.   

    很简单:只要可能有中文,那么表(或字段)就要选择中文字符集(选哪种都无所谓)
    你的页面用什么编码就告诉mysql你用什么编码,如1#
    mysql 不会自动将内容转换成你需要的编码,不必你操心
      

  5.   

    1、MySQL数据库编码:建立数据库时指定编码(如gbk_chinese_ci),建立数据表、建立字段、插入数据时不要指定编码,会自动继承数据库的编码。
    数据库连接时,也有编码,可以在连接完数据库后,执行mysql_query('SET NAMES gbk');//将gbk换成你的编码,如utf8。2、html页面的编码,指的是这一行的设置:
    <meta http-equiv="Content-Type" content="text/html; charset=gbk" />3、PHP或html文件本身的编码:用editplus打开php文件或html文件,另存时,选择的编码,如果数据库和页面编码是gbk,则这儿的编码选择ansi;如果数据库和页面编码是utf-8,则这儿也选择utf-8。4、另外要注意的是,Javascript或Flash中传递的数据是utf-8编码,如果数据库和页面编码是gbk,要进行转码,然后写入数据库。
    例如:iconv('utf-8', 'gbk', $content);//将utf8转成gbk5、在PHP程序中,可以加上一行,来指定PHP源程序的编码:
    header('Content-type: text/html; charset=gbk');
      

  6.   

    首先在第一个哪里输出一下!看看那里的值是什么!@row[0]!然后在同下面比!就能看出来是哪里出了问题呢!
      

  7.   

    你重新建个数据库,把数据库的编码改为 utf-8 general 试下。不匹配应该是编码格式不一样
      

  8.   

    连接数据库后加入下面两行代码试试:
    mysql_query("SET character_set_connection='utf8', character_set_results='utf8',character_set_client=binary");
    mysql_query("SET sql_mode=''");//防止数据库乱码发生
      

  9.   

    最简单的办法,不改变数据库编码以及网页头部的情况下,在db类里执行sql之前加上一句:
    mysql_query('set names utf8');
      

  10.   

     执行sql之前加上:mysql_query('set names utf8'); 连接器会自动转码