views:

81

answers:

2

When I insert some text written in unicode into database, they become question marks. Database encoding is set to utf-8. What else may be incorrect? When I check in phpmyadmin there are question marks inserted only!

This is the code I use for connecting to database:

define ("DB_HOST", "localhost"); // set database host
define ("DB_USER", "root"); // set database user
define ("DB_PASS","password"); // set database password
define ("DB_NAME","name"); // set database name

$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");
$db = mysql_select_db(DB_NAME, $link) or die("Couldn't select database");

mysql_set_charset('utf8',$link); 
mysql_query("SET CHARACTER SET utf8");
+3  A: 

Is the text you inserted encoded in UTF-8 too? Or is your PHP files not UTF-8? Have you set the MySQL Client connection to UTF-8?

If not, then that is probably the cause of the problem.

Nat
+2  A: 

How do you know the become question marks? Do you see them as question marks in your PHP pages, when you output the database fields, or in software like phpmyadmin?

Either way, the problem is probably the encoding of your web page rather than the database's. Make sure to add the following line:

header('Content-Type: text/html; charset=utf-8');
Krevan
I see question marks in phpmyadmin and on site too.
Levani
the font you're using is important information that could help in the resolution of this case
stillstanding
I use Georgian unicode. The font name is Sylfaen.
Levani