Смайлики в mysql превращаются в вопросительные знаки

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

# For each database:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
# For each table:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# For each column:
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Я сделал все это, но смайлики в mysql все еще показывают вопросительные знаки. Пожалуйста, что мне сделать, чтобы mysql отображал смайлики. заранее спасибо


person George    schedule 28.10.2015    source источник
comment
Ваше подключение к базе данных с использованием utf8?   -  person Phylogenesis    schedule 28.10.2015
comment
Я вставляю их через phpmyadmin, и нет соединения utf8mb4_unicode_ci   -  person George    schedule 28.10.2015
comment
В верхнем левом углу главной страницы phpMyAdmin есть элемент под названием «Сортировка подключения к серверу». Это тоже установлено на utf8mb4_unicode_ci? Установлены ли настройки набора символов на вкладке «Переменные» на главной странице в utf8?   -  person Phylogenesis    schedule 28.10.2015
comment
@Phylogenesis Да, пожалуйста, для параметра «Подключение к серверу» установлено значение utf8mb4_unicode_ci, ниже приведены настройки в переменных. Соединение набора символов — utf8mb4, а клиент набора символов — utf8.   -  person George    schedule 28.10.2015
comment
Вы уверены, что это проблема MySQL, а не проблема PHPMyAdmin? Что произойдет, если вы напрямую запросите БД?   -  person cwallenpoole    schedule 13.06.2017


Ответы (2)


Немного поздно, чтобы ответить на вопрос. Но я надеюсь, что это будет полезно для других...

Приведенная выше конфигурация заставляет таблицы базы данных хранить данные в кодировке utf8. Но соединение с базой данных (JDBC) должно иметь возможность передавать данные в кодировке utf8 клиенту. Для этого параметр соединения JDBC charset должен быть установлен в utf8mb4.

person Vamshi    schedule 31.01.2019
comment
мой URL-адрес подключения такой, но мои смайлики все равно сохраняются как ??. Нужно ли мне что-то менять? jdbc:mysql://someIP:port/DB?useUnicode=yescharacter_set_server=utf8mb4characterEncoding=UTF-8 - person Aparna; 24.02.2020

Кодировка по умолчанию для входящих подключений задана неправильно. DEFAULT CHARSET вернется как utf8, однако character_set_server будет другим.

Итак, установите набор символов по умолчанию = utf8.

person Thomas Rbt    schedule 21.06.2017