php mysql query encoding problem
I have a page with utf-8 encodin. Mysql is set to utf8_general_ci. Here is the query:
mysql_query("SET CHARACTER SET utf8_general_ci");
$query = "INSERT INTO newsbox VALUES ('null', '$zaglavie', '$nom_file_big', '$den', '$mesec', '$godina', '$zaglavie2', '$text', '$zaglavie开发者_开发问答3')";
$result = mysql_query($query) or die(mysql_error());
and cyrillic input text is inserted like ?????. What could be the problem.
What I tend to find solves things a lot is;
mysql_query("SET NAMES 'utf8'");
Before any queries are performed.
The documentation recommends that you use mysql_set_charset
but I often see that function missing.
if( function_exists('mysql_set_charset') ){
mysql_set_charset('utf8', $db_con);
}else{
mysql_query("SET NAMES 'utf8'", $db_con);
}
I'm not sure if the mysql_query("SET ..") works as expected. Try setting the character set with mysql_set_charset(). Are you sure the text is inserted like that? If you're using the CLI mysql client with a wrong character set, display output may be faulty as well (that probably goes for retrieval via mysql_fetch_*() as well).
精彩评论