Uyigcina njani i-Emoji kwi-MySQL?Faka i-database ye-Emoji intetho yombuzo wombuzo wophawu lwengxaki

Ukuba intetho ye-Emoji igcinwe kwi encoding utf8MySQL databaseokanye iMariaDB, ayinakuboniswa.

Kutheni intetho ye-Emoji ifakwe kwisiseko sedatha ibe ngumlingisi wombuzo?

Ngenxa yokuba iintetho ze-Emoji zinamagama e-4-byte, kunye neseti ye-utf8 ixhasa kuphela i-1-3 bytes yabalinganiswa, iintetho ze-Emoji azinakubhalwa kuvimba wedatha.

Indlela yokusombulula ingxaki ukuba intetho ye-Emoji ifakwe kwisiseko sedatha iba ngumlinganiswa wombuzo?

Kukho izisombululo ezi-2:

  1. Faka umbhalo ngesandla, ususa amagama ebhayithi ezine ngoonobumba besiqhelo.
  2. guqula kancinane MySQL Iseti yoonobumba beDatabase, tshintsha isethi yoonobumba bedatha ukusuka kwi-utf8 ukuya kwi-utf8mb4, xhasa i-1-4 byte characters.

Enyanisweni, indlela yokuqala inomsebenzi omninzi kwaye ayifanelekanga.

Kuyacetyiswa ukuba usebenzise isisombululo sesibini, guqula kancinane isethi ye-database ye-MySQL.

Ukuqala kwinguqulo ye-MySQL 5.5.3, i-database inokuxhasa isethi ye-utf4mb8 yeebhayithi ezi-4, kwaye umlingiswa unokuba nee-bytes ezi-4, ngoko unokuxhasa iiseti ezininzi zomlinganiswa, kwaye unokugcina amagama e-Emoji.

  • Emva kwe-MySQL 5.5.3, ungaphucula ngaphandle komthungo kwiseti yeempawu ze-utf8mb4.
  • Kwangaxeshanye, i-utf8mb4 iyahambelana nesethi yeempawu ze-utf8.
  • Ukufakwa kwekhowudi, indawo kunye nokugcinwa kweempawu ze-utf8 zikwi-utf8mb4.
  • Kuyafana neseti yeempawu ze-utf8, akukho monakalo kwidatha ekhoyo.

Ngenxa yephpMyAdminKwiitheyibhile ezenziwe ngokutsha kwisiseko sedatha esenziwe ngokutsha, usebenziso lwekhowudi loonobumba olungagqibekanga lu:Latin1

  • Olu guqulelo lwekhowudi alukwazi ukufaka amabinzana aseTshayina kunye ne-Emoji;
  • Kufuneka utshintshe isethi yombhalo wekhowudi yogcino magama kunye netafile kwi-utf8mb4;
  • Emva koko, qalisa kwakhona i-MySQL, ungafaka iintetho zesiTshayina kunye ne-Emoji.

MySQL Emoji isisombululo ingxaki umlinganiswa

Isiqendu 1:Guqula ifayile yoqwalaselo yeMySQL yam.cnf

  • (Iseva yeWindows yeyam.ini,LinuxUmncedisi ngu my.cnf)
  • my.cnf ifayile, iqhele ukungena/etc/mysql/my.cnfisikhundla.
  • Iphaneli yokulawula yeCWPIfayile ye-my.cnf, ingaphakathi/etc/my.cnfisikhundla.

Emva kokuba uyifumene, nceda wongeze umxholo olandelayo kula macandelo mathathu alandelayo ▼

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

Isiqendu 2:Qala kwakhona i-database ye-MySQL

service mysqld restart

Inyathelo 3: Jonga umlinganiswa useti kwakhona kwaye ufake ▼ kumgca womyalelo weSQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Jonga ukuba oku kulandelayo ▼

Uyigcina njani i-Emoji kwi-MySQL?Faka i-database ye-Emoji intetho yombuzo wombuzo wophawu lwengxaki

Ngenisa lo myalelo ulandelayo weSQL▼

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

Jonga ukuba ilandelayo▼

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

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

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

Emva kokudala isiseko sedatha entsha kwiphpMyAdmin, kufunekaJonga ikhowudi yedatha ▼

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

Ukuba i-encoding yedathabheyisi ayikhoutf8mb4, kufuneka ulungise umbhalo wesiseko sedata emiselweyoutf8mb4 ,

Uyilungisa njani idatabase esetwe kwi-utf8mb4?

Inyathelo 1: Cofa igama ledatha yangoku kwiphpMyAdmin, emva koko ucofe iSQL.

Inyathelo lesi-2: Faka lo myalelo ulandelayo ukulungisa unobumba wesiseko sedata emiselwe kuwoutf8mb4

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

Isiqendu 3:Qala kwakhona i-database ye-MySQL

service mysqld restart
  • Yiyo leyo.

Nantsi eminye imizekelo yemiyalelo yeSQL:

Guqula isethi yoonobumba abangagqibekanga kunye nazo zonke iikholamu zabalinganiswa betafile zibeseti entsha yoonobumba ▼

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • Njenge:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Ukuba uguqula kancinane uluhlu lweempawu ezimiselweyo zetafile▼

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

Guqula umsebenzi webala ▼

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name 
  • Njenge:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

Jonga ikhowudi yetafile ▼

SHOW CREATE TABLE tbl_name;

Jonga iiKhowudi zeNdawo ▼

SHOW FULL COLUMNS FROM tbl_name;

Jonga ikhowudi yedatha yangoku ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Iphakheji yomqhubi we-mysql-connector-java ixhasa kuphela utf5.1.13mb8 kwi-4+

Ndiyathemba Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ekwabelwanayo "Uyigcina njani i-Emoji kwi-MySQL? Faka i-database ye-Emoji intetho yombuzo wengxaki yomlinganiswa", eluncedo kuwe.

Wamkelekile ukwabelana ngekhonkco leli nqaku:https://www.chenweiliang.com/cwl-26592.html

Wamkelekile kwisitishi seTelegram sebhlog kaChen Weiliang ukufumana uhlaziyo lwamva nje!

🔔 Yiba ngowokuqala ukufumana iSikhokelo sokuSetyenziswa kweSixhobo se-"ChatGPT yeNtengiso ye-AI" kuluhlu oluphezulu lwetshaneli! 🌟
📚 Esi sikhokelo sinexabiso elikhulu, 🌟Eli lithuba elinqabileyo, ungaliphoswa! ⏰⌛💨
Yabelana kwaye uthanda ukuba uyathanda!
Ukwabelana kwakho kunye nezinto ozithandayo ziyinkuthazo yethu eqhubekayo!

 

Shiya uluvo

Idilesi ye-imeyile ayizukupapashwa. Iinkalo ezifunekayo zisetyenzisiwe * Ileyibheli

skrolela phezulu