Як зберегти 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

  • Це кодування не може вставляти китайські вирази та вирази 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';

Перевірте, чи ▼

Як зберегти 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+

Блог Hope Chen Weiliang ( https://www.chenweiliang.com/ ) поділився «Як зберегти Emoji в MySQL? Увійдіть до бази даних Emoji вираз знак питання проблема символів», що було корисним для вас.

Ласкаво просимо поділитися посиланням на цю статтю:https://www.chenweiliang.com/cwl-26592.html

Ласкаво просимо до каналу Telegram у блозі Чень Вейляна, щоб отримувати останні оновлення!

🔔 Станьте першим, хто отримає цінний «Посібник із використання інструменту штучного інтелекту маркетингу контенту ChatGPT» у верхньому каталозі каналу! 🌟
📚 Цей посібник має величезну цінність. 🌟Це рідкісна можливість, не пропустіть її! ⏰⌛💨
Поділіться та вподобайте, якщо вам подобається!
Ваші публікації та лайки є нашою постійною мотивацією!

 

发表 评论

Ваша електронна адреса не буде опублікована. 必填 项 已 用 * Етикетка

прокрутіть наверх