Khi tôi chèn một số văn bản được viết bằng unicode vào cơ sở dữ liệu, chúng sẽ trở thành dấu hỏi. Mã hóa cơ sở dữ liệu được đặt thành utf-8. Điều gì khác có thể không chính xác? Khi tôi kiểm tra trong phpmyadmin có dấu hỏi chỉ được chèn!Ký tự Unicode trở thành dấu chấm hỏi sau khi chèn vào cơ sở dữ liệu
Đây là mã tôi sử dụng để kết nối với cơ sở dữ liệu:
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");
Bạn sử dụng mô-đun nào để giao tiếp với MySQL? mysql, mysqli, pdo-mysql, ...? Dữ liệu cũng được mã hóa utf-8 đúng cách? Chính xác nơi bạn nhìn thấy các ký tự như dấu hỏi? – VolkerK
Tôi đã thêm mysql_query ("SET NAMES 'utf8'"); sau mysql_select_db và vấn đề được giải quyết! –
Bạn có thể muốn xem http://uk3.php.net/manual/en/function.mysql-set-charset.php –