用JS向PHP传值查询时,变量含有中文出现奇怪问题,如下:
在接收POST传值的PHP页面直接书写中文查询MYSQL时没问题的,如:
<? //连接数据库
include("../dianying/conn.php");
//接收查询条件
$lei=$_POST["leib"];
$minb=$_POST["names"];
//执行查询
$mivv=mysql_query("select * from jmovect where m_chinese='雪光之灾' order by m_shijian desc");
$xkymy=mysql_num_rows($mivv);
echo $xkymy;//1
?>
如上,返回结果为1,能正常查询,且查询结果正确
但如果将中文改成JS传值过来的$minb变量名时,就无法查询,内容相同,且用alert();查看$minb变量时,显示为正常的 雪光之灾 中文,没有乱码,如下:
$mivv=mysql_query("select * from jmovect where m_chinese='".$minb."' order by m_shijian desc");
$xkymy=mysql_num_rows($mivv);
echo $xkymy;//
返回结果为空,MYSQL没有执行查询,如果将传值来的中文改成英文或数字,如上代码又能正常查询到。
也看到有用iconv('GB2312','UTF-8',$minb);解决的,但我测试后无效。毕竟在原JS页用alert();查看PHP返回传过来的值时,$minb=$_POST["names"];接收的中文不是乱码。
求解惑