10.2.25-MariaDB не разрешает данные на нескольких языках - PullRequest
0 голосов
/ 30 января 2020

Mysql версия: 10.2.25-MariaDB

ENGINE=InnoDB

Я пытаюсь сохранить такие данные, как: پہمغیابج ماوبرنم کرنامت

Но это просто показывает вопросительные знаки: ????

Я уже пробовал:

Utf8, Utf8mb4 charset & utf8_general_ci, utf8_unicode_ci collation

, но, похоже, ни один из них не работает.

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

Обновление:

Этот же проект сохраняет и извлекает данные на нескольких языках на моем локальном компьютере (используя mysql на локальном компьютере). Но сервер, на котором я развернул свой код, использует maria-db.

Обновление 2:

Чтобы убедиться, что проблема с базой данных и клиент отправляет правильные данные в базу данных, я сохранил данные в текстовом файле непосредственно перед сохранением в база данных. Текстовый файл содержит правильные данные, но база данных содержит ???.

Ответы [ 2 ]

1 голос
/ 31 января 2020
SHOW VARIABLES LIKE 'character_set%'

Проверьте character_set_database, character_set_connection и character_set_result.

Скорее всего, набор символов по умолчанию для сервера не UTF-8, поэтому вам нужно настроить соединение вручную, введя SET NAMES UTF8 сразу после подключения.

В php вы можете сделать то же самое, используя $connection->set_charset('UTF8')

Также вам необходимо проверить набор символов таблицы (SHOW CREATE TABLE xyz). Если для вашего набора символов базы данных НЕ было установлено UTF8, и вы создали таблицы без набора символов, заданного для таблицы / столбцов, таблицы не могут содержать символы UTF8, и вам потребуется их заново создать.

0 голосов
/ 03 февраля 2020

Я добавил charset=utf8 в connectionstring, и это сработало.

...