Почему я не могу просматривать символы иностранных языков в своей базе данных MySQL?

StackOverflow https://stackoverflow.com/questions/2488886

  •  21-09-2019
  •  | 
  •  

Вопрос

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

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

<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-заголовок.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top