Як захаваць 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 у блогу Чэнь Вэйляна, каб атрымліваць апошнія абнаўленні!

🔔 Будзьце першым, хто атрымае каштоўнае "Кіраўніцтва па выкарыстанні інструмента AI для маркетынгу кантэнту ChatGPT" у верхнім каталогу канала! 🌟
📚 Гэты дапаможнік мае вялікую каштоўнасць, 🌟Гэта рэдкая магчымасць, не прапусціце яе! ⏰⌛💨
Падзяліцеся і лайкайце, калі хочаце!
Ваш абмен і лайкі - наша пастаянная матывацыя!

 

发表 评论

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

пракруціць ўверх