Каталог статей
Якщо вираз 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
- Це кодування не може вставляти китайські вирази та вирази Emoji;
- Вам потрібно змінити кодування набору символів бази даних і таблиці на utf8mb4;
- Потім перезапустіть MySQL, ви зможете вставити китайські вирази та вирази Emoji.
Рішення проблеми з символом MySQL Emoji
第 1 步:Змініть конфігураційний файл MySQL my.cnf
- (сервер Windows — це my.ini,LinuxСервер my.cnf)
- файл my.cnf, зазвичай в
/etc/mysql/my.cnf
положення. - Панель керування CWPФайл 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+
Блог Hope Chen Weiliang ( https://www.chenweiliang.com/ ) поділився «Як зберегти Emoji в MySQL? Увійдіть до бази даних Emoji вираз знак питання проблема символів», що було корисним для вас.
Ласкаво просимо поділитися посиланням на цю статтю:https://www.chenweiliang.com/cwl-26592.html
Ласкаво просимо до каналу Telegram у блозі Чень Вейляна, щоб отримувати останні оновлення!
📚 Цей посібник має величезну цінність. 🌟Це рідкісна можливість, не пропустіть її! ⏰⌛💨
Поділіться та вподобайте, якщо вам подобається!
Ваші публікації та лайки є нашою постійною мотивацією!