Kalozera wa Nkhani
Ngati mawu a Emoji asungidwa mu utf8 encodingMySQL databasekapena MariaDB, sichikhoza kuwonetsedwa.
Chifukwa chiyani mawu a Emoji omwe adalowa mu database amakhala chizindikiro cha mafunso?
Chifukwa mawu a Emoji ndi zilembo za 4-byte, ndipo zilembo za utf8 zimangogwira zilembo 1-3 zokha, mawu a Emoji sangathe kulembedwa munkhokwe.
Momwe mungathetsere vuto lomwe mawu a Emoji adalowa mu database amakhala chizindikiro cha mafunso?
Pali njira ziwiri:
- Lowetsani mawu pamanja, m'malo mwa zilembo zinayi ndi zilembo zomwe mwakonda.
- 修改 MySQL Seti yamtundu wa database, sinthani mawonekedwe a database kuchokera ku utf8 kupita ku utf8mb4, thandizirani zilembo za 1-4 byte.
Ndipotu, njira yoyamba ndi yochuluka kwambiri ndipo sizoyenera.
Ndikofunikira kugwiritsa ntchito yankho lachiwiri, sinthani mawonekedwe a database ya MySQL.
Popeza MySQL 5.5.3 version, database ikhoza kuthandizira utf4mb8 seti ya ma byte 4, ndipo munthu akhoza kukhala ndi ma byte 4, kotero akhoza kuthandizira ma seti ambiri, komanso akhoza kusunga mawu a Emoji.
- Pambuyo pa MySQL 5.5.3, mutha kukweza mosasunthika ku seti ya utf8mb4.
- Nthawi yomweyo, utf8mb4 imagwirizana ndi seti ya utf8.
- Kusungidwa, malo ndi kusungirako zilembo za utf8 zili mu utf8mb4.
- Zofanana ndi zilembo za utf8, palibe kuwonongeka kwa zomwe zilipo.
Chifukwa chaphpMyAdminKwa matebulo opangidwa kumene mu database yomwe yangopangidwa kumene, encoding ya zilembo ndi:Latin1
- Kusindikiza uku sikungaike mawu achi China ndi Emoji;
- Muyenera kusintha ma encoding amtundu wamtundu wa database ndi tebulo kuti utf8mb4;
- Kenako, yambitsaninso MySQL, mutha kuyika mawu achi China ndi Emoji.
Yankho la vuto la MySQL Emoji
Khwerero 1:Sinthani fayilo yosinthidwa ya MySQL my.cnf
- (Seva ya Windows ndi my.ini,LinuxSeva ndi my.cnf)
- my.cnf file, nthawi zambiri in
/etc/mysql/my.cnfudindo. - CWP Control Panelmy.cnf file, yomwe ili mkati
/etc/my.cnfudindo.
Mukachipeza, chonde onjezerani zotsatirazi m'magawo atatu otsatirawa ▼
[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'
Khwerero 2:Yambitsaninso database ya MySQL
service mysqld restart
Khwerero 3: Yang'anani mawonekedwe omwe akhazikitsidwanso ndikulowetsa ▼ mu mzere wa SQL
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
Onani ngati zotsatirazi ▼

Lowetsani lamulo lotsatira la SQL▼
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Onani ngati zili motere▼
+--------------------------+--------------------+ | 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 | +--------------------------+--------------------+
Mukapanga database yatsopano mu phpMyAdmin, muyeneraOnani khodi ya database ▼
SHOW CREATE DATABASE db_name;
- Monga:
SHOW CREATE DATABASE test;
Ngati kusungidwa kwa database sikuliutf8mb4, muyenera kusintha mawonekedwe a databaseutf8mb4 .
Momwe mungasinthire mawonekedwe a database kukhala utf8mb4?
Khwerero 1: Dinani dzina la database lapano mu phpMyAdmin, kenako dinani SQL.
Khwerero 2: Lowetsani lamulo ili kuti musinthe mawonekedwe a databaseutf8mb4▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- Monga:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
Khwerero 3:Yambitsaninso database ya MySQL
service mysqld restart
- Ndichoncho.
Nazi zitsanzo za malamulo a SQL:
Sinthani zilembo zosasinthika ndi magawo onse patebulo kukhala mawonekedwe atsopano ▼
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- Monga:
ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Mukangosintha mawonekedwe osasinthika a tebulo▼
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- Monga:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Sinthani mawonekedwe agawo ▼
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name
- Monga:
ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
Onani khodi ya tebulo ▼
SHOW CREATE TABLE tbl_name;
Onani Ma Code a Field ▼
SHOW FULL COLUMNS FROM tbl_name;
Onani khodi ya database yamakono ▼
SHOW VARIABLES LIKE 'character_set_%';
- Phukusi la driver la mysql-connector-java limangothandiza utf5.1.13mb8 mu 4+
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) adagawana "Momwe mungasungire Emoji mu MySQL? Lowetsani nkhokwe ya Emoji expression mark question mark", zomwe ndi zothandiza kwa inu.
Takulandirani kugawana ulalo wa nkhaniyi:https://www.chenweiliang.com/cwl-26592.html
