up vote 0 down vote favorite
share [g+] share [fb]

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', '$zaglavie3')";
                $result = mysql_query($query) or die(mysql_error()); 

and cyrillic input text is inserted like ?????. What could be the problem.

link|improve this question

73% accept rate
feedback

2 Answers

up vote 0 down vote accepted

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

link|improve this answer
I am using my scripts for years and thats the first time I have such a problem :( – Victor Jan 20 '11 at 13:18
feedback

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);
}
link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.