Почему я не могу просматривать символы иностранных языков в моей базе данных 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();

1 ответ

Решение

Соединение с базой данных также закодировано в UTF-8?

Попробуйте: сразу после подключения к базе данных mysql выполните следующий запрос.

SET NAMES utf8;

Это должно сделать свое дело (см. MySQL документ). (Да, вы должны делать это каждый раз, когда вы подключаетесь.)

Кстати, не просто полагаться на <meta>-Tag, отправьте соответствующий заголовок HTTP.

Другие вопросы по тегам