2012-04-12 34 views
0

客戶端頁面:中國字符的形式提交

<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問題? 我是否需要在我的操作系統中設置某些內容來支持中文表示?

+2

Java部分在哪裏? – Thomas 2012-04-12 07:23:34

+0

我也在JSP中嘗試過這一點,並且...我想知道這是否與其他事情有關 – 2012-04-12 08:08:20

回答

0

您正在餵食mySQL未轉義的原始輸入。

在您的輸入字符串上使用mysql_real_escape_string或更好地使用PDO與數據庫交談。