Каталог статей
Если выражение Emoji хранится в кодировке utf8База данных MySQLили MariaDB, его нельзя отобразить.
Почему введенное в базу данных выражение Emoji становится символом вопросительного знака?
Поскольку выражения Emoji представляют собой 4-байтовые символы, а набор символов utf8 поддерживает только 1-3 байта символов, выражения Emoji нельзя записать в базу данных.
Как решить проблему, что введенное в базу данных выражение Emoji становится символом вопросительного знака?
Есть 2 решения:
- Введите текст вручную, заменив четырехбайтовые символы пользовательскими символами.
- 修改 MySQL Набор символов базы данных, изменение набора символов базы данных с utf8 на utf8mb4, поддержка символов 1-4 байта.
На самом деле, первый метод требует слишком много работы и не рекомендуется.
Рекомендуется использовать второе решение, изменить набор символов базы данных MySQL.
Начиная с версии MySQL 5.5.3, база данных может поддерживать набор символов utf4mb8 из 4 байт, а символ может иметь до 4 байт, поэтому он может поддерживать больше наборов символов, а также может хранить выражения Emoji.
- После MySQL 5.5.3 вы можете легко перейти на набор символов utf8mb4.
- В то же время utf8mb4 совместим с набором символов utf8.
- Кодировка, положение и хранение символов utf8 находятся в utf8mb4.
- Такой же, как набор символов utf8, без повреждения существующих данных.
Из-заPHPMYADMINДля вновь созданных таблиц во вновь созданной базе данных кодировка символов по умолчанию:Latin1
- Эта кодировка не может вставлять китайские выражения и выражения эмодзи;
- Вам необходимо изменить кодировку набора символов базы данных и таблицы на utf8mb4;
- Затем перезапустите MySQL, вы можете вставить китайские выражения и выражения Emoji.
Решение проблемы с символом MySQL Emoji
第 1 步 :Измените файл конфигурации MySQL my.cnf
- (Сервер Windows — это my.ini,LinuxСервер мой.cnf)
- файл my.cnf, обычно в
/etc/mysql/my.cnf
должность. - Панель управления КВПФайл my.cnf находится в
/etc/my.cnf
должность.
После того, как вы найдете его, добавьте следующий контент в следующие три части ▼
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4'
第 2 步 :Перезапустите базу данных MySQL.
service mysqld restart
Шаг 3: Еще раз проверьте набор символов и введите ▼ в командной строке SQL.
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
Проверьте следующее ▼
Введите следующую команду SQL▼
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Проверьте, так ли это▼
+--------------------------+--------------------+ | Variable_name | Value | +--------------------------+--------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | collation_connection | utf8mb4_unicode_ci | | collation_database | utf8mb4_unicode_ci | | collation_server | utf8mb4_unicode_ci | +--------------------------+--------------------+
После создания новой базы данных в phpMyAdmin необходимоПосмотреть код базы данных ▼
SHOW CREATE DATABASE db_name;
- 如:
SHOW CREATE DATABASE test;
Если кодировка базы данных неutf8mb4
, вы должны изменить набор символов базы данных наutf8mb4
.
Как изменить набор символов базы данных на utf8mb4?
Шаг 1: Нажмите на имя текущей базы данных в phpMyAdmin, затем нажмите SQL.
Шаг 2: Введите следующую команду, чтобы изменить набор символов базы данных наutf8mb4
▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- 如:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
第 3 步 :Перезапустите базу данных MySQL.
service mysqld restart
- Вот и все.
Вот несколько примеров команд SQL:
Измените набор символов по умолчанию и все столбцы символов таблицы на новый набор символов ▼
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- 如:
ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Если вы изменяете только набор символов по умолчанию для таблицы▼
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- 如:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Изменить набор символов поля ▼
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name
- 如:
ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
Посмотреть код таблицы ▼
SHOW CREATE TABLE tbl_name;
Посмотреть коды полей ▼
SHOW FULL COLUMNS FROM tbl_name;
Посмотреть текущий код базы данных ▼
SHOW VARIABLES LIKE 'character_set_%';
- Пакет драйверов mysql-connector-java поддерживает только utf5.1.13mb8 в 4+.
Блог Хоуп Чен Вейлян ( https://www.chenweiliang.com/ ) поделился «Как сохранить эмодзи в MySQL? Введите в базу данных вопросительный знак выражения эмодзи», который вам полезен.
Добро пожаловать, чтобы поделиться ссылкой на эту статью:https://www.chenweiliang.com/cwl-26592.html
Добро пожаловать на Telegram-канал блога Chen Weiliang, чтобы быть в курсе последних обновлений!
📚 Это руководство содержит огромную ценность. 🌟Это редкая возможность, не упустите ее! ⏰⌛💨
Делитесь и ставьте лайк, если хотите!
Ваш обмен и лайки - наша постоянная мотивация!