客户页面:
<head>
<meta http-equiv="Catchup Scheduler" content="text/html; charset=UTF-8">
</head>
<body>
<form action="next.php" method="POST" >
<input type="text" name="programme_name"></br>
<input type="submit">
</form>
</body>
服务器页面:
$name = $_POST['programme_name'];
mysql_query("SET character_set_client=utf8",$con);
mysql_query("SET character_set_connection=utf8", $con);
mysql_query("SET character_set_results=utf8", $con);
$query = "Select * from programme where Programme_name Like '%".$name."'";
问题是虽然数据库中有中文文本,但查询总是返回ZERO(none)
。如果我打印 POST 值$name
,它会显示带有中文字符的正确文本。
但是如果我将它存储在一个变量中,例如:
$name= "valuevalue ( 官话 )";
$query = "Select * from programme where Programme_name Like '%".$name."'";
它产生结果。这怎么可能,在 POST 中它不是静态值声明而是它呢?我的操作系统是 XP SP3。
如果在 POST 中,汉字的“内部”表示是否有问题?我需要在我的操作系统中设置一些东西来支持中文表示吗?