$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。从数据库中取出的中文,怎么才能和网页中的双引号中的中文进行比较啊?
谢谢各位!
mysql_query('set names utf8');
所以,在数据库中的中文和在写代码时候的中文之间肯定有代沟。
各位,请问怎么解决?谢谢大家!
你的页面用什么编码就告诉mysql你用什么编码,如1#
mysql 不会自动将内容转换成你需要的编码,不必你操心
数据库连接时,也有编码,可以在连接完数据库后,执行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');
mysql_query("SET character_set_connection='utf8', character_set_results='utf8',character_set_client=binary");
mysql_query("SET sql_mode=''");//防止数据库乱码发生
mysql_query('set names utf8');