Victor
Victor

Reputation: 99

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

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

Upvotes: 0

Views: 6141

Answers (2)

Friek
Friek

Reputation: 1541

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

Upvotes: 1

Matt Lowden
Matt Lowden

Reputation: 2616

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);
}

Upvotes: 6

Related Questions