Uhla lwemibhalo ye-athikili
Uma isisho se-Emoji sigcinwe ekubhalweni ngekhodi kwe-utf8MySQL databasenoma i-MariaDB, ayikwazi ukuboniswa.
Kungani isisho se-Emoji sifakwe kusizindalwazi siba uhlamvu lophawu lombuzo?
Ngenxa yokuthi izinkulumo ze-Emoji ziyizinhlamvu ezingu-4-byte, futhi uhlamvu lwe-utf8 olusethiwe lusekela kuphela amabhayithi angu-1-3 ezinhlamvu, izinkulumo ze-Emoji azikwazi ukubhalwa kusizindalwazi.
Indlela yokuxazulula inkinga ukuthi isisho se-Emoji esifakwe ku-database siba uhlamvu lombuzo?
Kunezixazululo ezi-2:
- Faka umbhalo mathupha, esikhundleni sezinhlamvu zamabhayithi amane ngezinhlamvu zangokwezifiso.
- shintsha MySQL Isethi yezinhlamvu ze-database, shintsha isethi yohlamvu egciniwe isuka ku-utf8 iye ku-utf8mb4, isekele izinhlamvu zebhayithi eziyi-1-4.
Eqinisweni, indlela yokuqala iwumsebenzi omningi futhi ayifaneleki.
Kunconywa ukusebenzisa isisombululo sesibili, uguqule isethi yezinhlamvu ze-MySQL database.
Kusukela kunguqulo ye-MySQL 5.5.3, isizindalwazi singasekela isethi yezinhlamvu ze-utf4mb8 zamabhayithi angu-4, futhi uhlamvu lungaba namabhayithi angu-4, ngakho lungakwazi ukusekela amasethi ezinhlamvu amaningi, futhi lungakwazi ukugcina izinkulumo ze-Emoji.
- Ngemva kwe-MySQL 5.5.3, ungakwazi ngokuyisisekelo uthuthukele kusethi yezinhlamvu ze-utf8mb4.
- Ngesikhathi esifanayo, i-utf8mb4 iyahambisana nesethi yezinhlamvu ze-utf8.
- Umbhalo wekhodi, indawo kanye nokugcinwa kwezinhlamvu ze-utf8 kuku-utf8mb4.
- Kuyafana nesethi yezinhlamvu ze-utf8, akukho monakalo kudatha ekhona.
Ngenxa yephpMyAdminKumathebula asanda kwakhiwa kusizindalwazi esisanda kwakhiwa, umbhalo wekhodi ozenzakalelayo uthi:Latin1
- Lokhu kubhala ngekhodi akukwazi ukufaka izinkulumo zesiShayina neze-Emoji;
- Udinga ukushintsha isethi yombhalo wekhodi wohlamvu lwesethi yedathabheyisi nethebula ku-utf8mb4;
- Bese, qala kabusha i-MySQL, ungafaka izinkulumo zesiShayina neze-Emoji.
Isixazululo senkinga yezinhlamvu ze-MySQL Emoji
Isinyathelo sesi-1:Guqula ifayela lokumisa le-MySQL elithi my.cnf
- (Iseva yeWindows yi-my.ini,LinuxIseva yi-my.cnf)
- my.cnf file, ngokuvamile ku
/etc/mysql/my.cnfisikhundla. - Iphaneli yokulawula ye-CWPifayela le-my.cnf, elingaphakathi
/etc/my.cnfisikhundla.
Ngemva kokuyithola, sicela wengeze okuqukethwe okulandelayo ezingxenyeni ezintathu ezilandelayo ▼
[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'
Isinyathelo sesi-2:Qala kabusha i-database ye-MySQL
service mysqld restart
Isinyathelo sesi-3: Hlola uhlamvu olusethiwe futhi bese ufaka ▼ emugqeni womyalo we-SQL
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
Hlola ukuthi ngabe okulandelayo ▼

Faka umyalo olandelayo we-SQL▼
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Hlola ukuthi ngabe imi kanje▼
+--------------------------+--------------------+ | 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 | +--------------------------+--------------------+
Ngemuva kokudala i-database entsha ku-phpMyAdmin, kufaneleBuka ikhodi egciniwe ▼
SHOW CREATE DATABASE db_name;
- Njenge:
SHOW CREATE DATABASE test;
Uma i-database encoding ingekhoutf8mb4, kufanele uguqule uhlamvu lwesizindalwazi olusethwe ukuzeutf8mb4 ,
Ungalushintsha kanjani uhlamvu lwesizindalwazi olusethwe ku-utf8mb4?
Isinyathelo 1: Chofoza igama lesizindalwazi samanje ku-phpMyAdmin, bese uchofoza SQL.
Isinyathelo sesi-2: Faka umyalo olandelayo ukuze ulungise uhlamvu lwesizindalwazi olusethwe kuloutf8mb4▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- Njenge:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
Isinyathelo sesi-3:Qala kabusha i-database ye-MySQL
service mysqld restart
- Yilokho kuphela.
Nazi ezinye izibonelo zemiyalo ye-SQL:
Shintsha isethi yezinhlamvu ezimisiwe kanye nawo wonke amakholomu ezinhlamvu zethebula zibe isethi yohlamvu olusha ▼
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;
Uma uguqula kuphela isethi yezinhlamvu ezimisiwe zethebula▼
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- Njenge:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Lungisa isethi yezinhlamvu zenkambu ▼
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;
Buka ikhodi yethebula ▼
SHOW CREATE TABLE tbl_name;
Buka Amakhodi Enkundla ▼
SHOW FULL COLUMNS FROM tbl_name;
Buka ikhodi yedatha yamanje ▼
SHOW VARIABLES LIKE 'character_set_%';
- Iphakheji yomshayeli we-mysql-connector-java isekela kuphela utf5.1.13mb8 ku-4+
I-Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) kwabelwana ngokuthi "Indlela yokulondoloza i-Emoji ku-MySQL? Faka isizindalwazi senkinga yezinhlamvu zophawu lwenkulumo ye-Emoji", ewusizo kuwe.
Siyakwamukela ukwabelana ngesixhumanisi salesi sihloko:https://www.chenweiliang.com/cwl-26592.html
Ukuze uvule amaqhinga afihliwe🔑, wamukelekile ukujoyina isiteshi sethu seTelegram!
Yabelana futhi uthanda uma uthanda! Ukwabelana kwakho nokuthanda kwakho kuyisikhuthazo sethu esiqhubekayo!