2012-04-12 3 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.

Есть ли проблема во внутреннем представлении китайских иероглифов, если она находится в ПОСТ? Нужно ли мне что-то устанавливать в моей ОС для поддержки китайского представительства?

+2

Где находится Java-часть? – Thomas

+0

Я тоже пробовал это в JSP и тот же ... Интересно, связано ли это с чем-то другим? –

ответ

0

Вы питаете mySQL необработанный, сырой вход.

Используйте mysql_real_escape_string на вашей строке ввода или еще лучше, используя PDO, чтобы поговорить с базой данных.