2012-04-12 6 views
0

Client-Seite:chinesischen Schriftzeichen in Form Vorlage

<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> 

Server-Seite:

$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."'"; 

Problem ist, obwohl es chinesischen Text in der Datenbank, die Abfrage immer ZERO(none) zurückgibt. Wenn ich den POST-Wert $name drucke, wird der korrekte Text mit den chinesischen Zeichen angezeigt.

, aber wenn ich es speichern, in einer Variablen, wie zum Beispiel:

$name= "valuevalue (官话)"; 
$query = "Select * from programme where Programme_name Like '%".$name."'"; 

Es produziert Ergebnisse. Wie könnte das sein, in POST tut es nicht aber statische Wertangabe es tut? Mein Betriebssystem ist XP SP3.

Gibt es ein Problem in der "internen" Darstellung von chinesischen Zeichen, wenn es in POST ist? Muss ich etwas in meinem Betriebssystem einstellen, um die chinesische Darstellung zu unterstützen?

+2

Wo ist der Java-Teil? – Thomas

+0

Ich habe das auch in JSP probiert und gleich ... Ich frage mich, ob das mit etwas anderem zu tun hat –

Antwort

0

Sie füttern mySQL unescaped, rohe Eingabe.

Verwenden Sie mysql_real_escape_string auf Ihre Eingabezeichenfolge oder noch besser verwenden Sie PDO, um mit der Datenbank zu sprechen.