Почему я не могу просматривать символы иностранных языков в моей базе данных mysql? - PullRequest
3 голосов
/ 22 марта 2010

Я вставляю в свою БД следующие символы: 汉字 / 漢字

Это метатег на странице, где вставляются символы:

<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 Ответ

6 голосов
/ 22 марта 2010

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

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

SET NAMES utf8;

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

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

...