Почему я не могу просматривать символы иностранных языков в своей базе данных MySQL?
Вопрос
Я вставляю следующие символы в свою БД: 汉字 / 漢字
Это метатег на странице, в который вставляются символы:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Я изменил все столбцы в моей таблице, в которых содержатся символы. utf8_unicode_ci
Иностранные символы отображаются в БД следующим образом: æ±‰å— / æ¼¢å—
Когда я использую оператор sql для отображения этих иностранных символов на странице, они снова отображаются правильно: 汉字 / 漢字
Я предполагаю, что у меня есть какие-то настройки, которые неверны в моей БД, поскольку она хранит их правильно, но не отображает правильно.
Что я могу сделать, чтобы символы иностранного языка правильно отображались в моей базе данных?
РЕДАКТИРОВАТЬ: Вот моя вставка:
$sql = 'INSERT INTO orders (foreign_characters)
VALUES (?)';
$stmt = $conn->stmt_init();
$stmt->bind_param('s', $_SESSION['foreign_characters']);
$inserted = $stmt->execute();
Решение
Соединение с базой данных также имеет кодировку UTF-8?
Попробуйте это:сразу после подключения к базе данных MySQL выполните следующий запрос.
SET NAMES utf8;
Это должно помочь (см. документ MySQL).(Да, вам придется делать это каждый раз, когда вы подключаетесь.)
КСТАТИ:не полагайтесь только на <meta>
-Tag, отправьте соответствующий HTTP-заголовок.