Ki jan yo sove Emoji nan MySQL Antre nan baz done Emoji ekspresyon kesyon mak pwoblèm karaktè

Si ekspresyon emoji a estoke nan kodaj utf8baz done MySQLoswa MariaDB, li pa ka parèt.

Poukisa ekspresyon Emoji ki antre nan baz done a vin yon karaktè mak kesyon?

Paske ekspresyon Emoji yo se karaktè 4-byte, ak seri karaktè utf8 la sèlman sipòte 1-3 byte nan karaktè, ekspresyon Emoji pa ka ekri nan baz done a.

Ki jan yo rezoud pwoblèm nan ke ekspresyon an Emoji antre nan baz done a vin tounen yon karaktè mak kesyon?

Gen 2 solisyon:

  1. Antre tèks manyèlman, ranplase karaktè kat byte ak karaktè koutim.
  2. modifye Miskl Ansanm karaktè baz done, chanje seri karaktè baz done a soti nan utf8 a utf8mb4, sipòte karaktè 1-4 byte.

An reyalite, premye metòd la se twòp travay epi li pa rekòmande.

Li rekòmande pou itilize dezyèm solisyon an, modifye seri karaktè baz done MySQL.

Kòmanse soti nan MySQL 5.5.3 vèsyon, baz done a ka sipòte seri karaktè utf4mb8 nan 4 bytes, ak yon karaktè ka gen jiska 4 bytes, kidonk li ka sipòte plis seri karaktè, epi tou li ka estoke ekspresyon Emoji.

  • Apre MySQL 5.5.3, ou ka fondamantalman san pwoblèm ajou ak seri karaktè utf8mb4 la.
  • An menm tan an, utf8mb4 konpatib ak seri karaktè utf8 la.
  • Kodaj, pozisyon ak depo karaktè utf8 yo nan utf8mb4.
  • Menm jan ak seri karaktè utf8, pa gen okenn domaj nan done ki egziste deja.

AkozfpmyadmenPou tab ki fèk kreye nan yon baz done ki fèk kreye, kodaj karaktè default la se:Latin1

  • Kodaj sa a pa ka mete ekspresyon Chinwa ak Emoji;
  • Ou bezwen chanje kodaj seri karaktè nan seri karaktè baz done a ak tab nan utf8mb4;
  • Lè sa a, rekòmanse MySQL, ou ka mete ekspresyon Chinwa ak Emoji.

MySQL Emoji karaktè solisyon pwoblèm

Etap 1:Modifye fichye konfigirasyon MySQL my.cnf

  • (Sèvè Windows se my.ini,LinuxSèvè a se my.cnf)
  • fichye my.cnf, anjeneral nan/etc/mysql/my.cnfpozisyon.
  • CWP Kontwòl PanelFichye my.cnf a, se nan/etc/my.cnfpozisyon.

Apre w fin jwenn li, tanpri ajoute kontni sa a nan twa pati sa yo ▼

[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'

Etap 2:Rekòmanse baz done MySQL la

service mysqld restart

Etap 3: Tcheke seri karaktè a ankò epi antre ▼ nan liy lòd SQL la

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Tcheke si sa ki annapre yo ▼

Ki jan yo sove Emoji nan MySQL Antre nan baz done Emoji ekspresyon kesyon mak pwoblèm karaktè

Antre kòmandman SQL sa a▼

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

Tcheke si li se jan sa a ▼

 +--------------------------+--------------------+

| 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 |

+--------------------------+--------------------+

Apre ou fin kreye yon nouvo baz done nan phpMyAdmin, ou dweGade kòd baz done ▼

SHOW CREATE DATABASE db_name;
  • 如:SHOW CREATE DATABASE test;

Si kodaj baz done a se pautf8mb4, ou dwe modifye karaktè baz done autf8mb4 .

Ki jan yo modifye seri karaktè baz done a nan utf8mb4?

Etap 1: Klike sou non baz done aktyèl la nan phpMyAdmin, Lè sa a, klike sou SQL.

Etap 2: Antre kòmandman sa a pou modifye karaktè baz done autf8mb4

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
  • 如:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;

Etap 3:Rekòmanse baz done MySQL la

service mysqld restart
  • Se sa.

Men kèk egzanp kòmandman SQL:

Chanje seri karaktè defo a ak tout kolòn karaktè nan tablo a nan seri karaktè a nouvo ▼

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;

Si ou sèlman modifye seri karaktè default tab la▼

ALTER TABLE tbl_name  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • 如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Modifye seri karaktè yon jaden ▼

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;

Gade kòd tab ▼

SHOW CREATE TABLE tbl_name;

Gade kòd jaden ▼

SHOW FULL COLUMNS FROM tbl_name;

Gade kòd baz done aktyèl ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Pake chofè mysql-connector-java sèlman sipòte utf5.1.13mb8 nan 4+

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) pataje "Kijan pou konsève pou Emoji nan MySQL? Antre nan baz done Emoji ekspresyon kesyon mak karaktè pwoblèm", ki se itil pou ou.

Byenvini pataje lyen atik sa a:https://www.chenweiliang.com/cwl-26592.html

Byenveni nan chanèl Telegram blog Chen Weiliang a pou jwenn dènye mizajou yo!

🔔 Se pou premye moun ki jwenn bonjan "ChatGPT Content Maketing AI Itilizasyon Zouti Gid" nan anyè chanèl ki pi wo a! 🌟
📚 Gid sa a gen anpil valè, 🌟Sa a se yon opòtinite ki ra, pa rate li! ⏰⌛💨
Pataje epi like siw renmen!
Pataje w ak renmen ou se motivasyon kontinyèl nou!

 

kòmantè

Adrès imèl ou pa pral pibliye. Jaden obligatwa yo te itilize * Mete etikèt sou

woule nan tèt