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

Если выражение Emoji хранится в кодировке utf8База данных MySQLили MariaDB, его нельзя отобразить.

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

Поскольку выражения Emoji представляют собой 4-байтовые символы, а набор символов utf8 поддерживает только 1-3 байта символов, выражения Emoji нельзя записать в базу данных.

Как решить проблему, что введенное в базу данных выражение Emoji становится символом вопросительного знака?

Есть 2 решения:

  1. Введите текст вручную, заменив четырехбайтовые символы пользовательскими символами.
  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';

Проверьте следующее ▼

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

Введите следующую команду 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, чтобы быть в курсе последних обновлений!

🔔 Будьте первым, кто получит ценное «Руководство по использованию инструмента искусственного интеллекта для контент-маркетинга ChatGPT» в верхнем каталоге канала! 🌟
📚 Это руководство содержит огромную ценность. 🌟Это редкая возможность, не упустите ее! ⏰⌛💨
Делитесь и ставьте лайк, если хотите!
Ваш обмен и лайки - наша постоянная мотивация!

 

发表 评论

Ваш электронный адрес не будет опубликован. 必填 项 已 用 * 标注

滚动 到 顶部