Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unicode characters become question marks after inserting into the database

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");
like image 624
King Julien Avatar asked Jul 31 '10 11:07

King Julien


2 Answers

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.

like image 156
innocenat Avatar answered Sep 18 '22 08:09

innocenat


How do you know the become question marks? Do you see them as question marks on 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');
like image 26
Krevan Avatar answered Sep 19 '22 08:09

Krevan