Eolaire Eolaire
- 1 Cén fáth a n-iompaíonn an slonn Emoji a cuireadh isteach sa bhunachar sonraí ina charachtar comhartha ceiste?
- 2 Conas an fhadhb a réiteach a d’iompaigh nathanna Emoji ina gcarachtair mharcanna ceiste nuair a cuireadh isteach iad sa bhunachar sonraí?
- 3 Réiteach fadhbanna carachtar MySQL Emoji
- 4 Conas an tacar carachtar bunachar sonraí a mhodhnú go utf8mb4?
Má stóráiltear nathanna Emoji in ionchódú utf8Bunachar sonraí MySQL saor in aisce,nó MariaDB, ní féidir é a thaispeáint.
Cén fáth a n-iompaíonn an slonn Emoji a cuireadh isteach sa bhunachar sonraí ina charachtar comhartha ceiste?
Toisc gur carachtair 4-beart iad na habairtí Emoji, agus nach dtacaíonn an tacar carachtar utf8 ach le 1-3 carachtar beart, ní féidir nathanna Emoji a scríobh chuig an mbunachar sonraí.
Conas an fhadhb a réiteach a d’iompaigh nathanna Emoji ina gcarachtair mharcanna ceiste nuair a cuireadh isteach iad sa bhunachar sonraí?
Tá 2 réiteach ann:
- Iontráil téacs de láimh, ag cur carachtair saincheaptha in ionad carachtair ceithre bheart.
- mhodhnú MySQL Tacar carachtar bunachar sonraí, athraigh tacar carachtar an bhunachair shonraí ó utf8 go utf8mb4, ag tacú le 1-4 carachtar beart.
Go deimhin, éilíonn an chéad mhodh an iomarca oibre agus níl sé inmholta.
Moltar an dara réiteach a úsáid chun tacar carachtar bunachar sonraí MySQL a mhodhnú.
Ag tosú ó MySQL leagan 5.5.3, is féidir leis an mbunachar sonraí tacú leis an tacar carachtar 4-byte utf8mb4, agus is féidir suas le 4 bytes a bheith ag carachtar, ionas gur féidir leis tacú le tacair carachtar níos mó agus nathanna Emoji a stóráil.
- Tar éis MySQL 5.5.3, is féidir é a uasghrádú go bunúsach gan uaim chuig an tacar carachtar utf8mb4.
- Ag an am céanna, tá utf8mb4 comhoiriúnach leis an tacar carachtar utf8.
- Tá ionchódú, suíomh agus stóráil carachtair utf8 in utf8mb4.
- An tacar carachtar céanna le utf8 agus ní dhéanfaidh sé damáiste do shonraí atá ann cheana féin.
Toisc iphpMyAdminMaidir le táblaí nuachruthaithe i mbunachair shonraí nuachruthaithe, is é an t-ionchódú carachtar réamhshocraithe ná:Latin1
- Ní féidir leis an ionchódú seo nathanna Síneacha agus Emoji a chur isteach;
- Is gá an tacar carachtar bunachar sonraí agus an t-ionchódú tacar carachtar tábla a athrú go utf8mb4;
- Ansin, atosaigh MySQL agus is féidir leat nathanna Síneacha agus Emoji a chur isteach.
Réiteach fadhbanna carachtar MySQL Emoji
Céim 1:Athraigh an comhad cumraíochta MySQL my.cnf
- (my.ini le haghaidh freastalaithe Windows,LinuxIs é an freastalaí my.cnf)
- my.cnf comhad, de ghnáth i
/etc/mysql/my.cnfSuíomh. - Painéal Rialúcháin CWPTá an comhad my.cnf isteach
/etc/my.cnfSuíomh.
Tar éis duit é a fháil, cuir an t-ábhar seo a leanas isteach sna trí chuid seo a leanas ▼
[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'
Céim 2:Atosaigh an bunachar sonraí MySQL
service mysqld restart
Céim 3: Seiceáil an tacar carachtar arís agus cuir isteach ▼ sa líne ordaithe SQL
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
Seiceáil an bhfuil sé mar seo a leanas ▼

Cuir isteach an t-ordú SQL seo a leanas ▼
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Seiceáil an bhfuil sé mar seo a leanas ▼
+--------------------------+--------------------+ | 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 | +--------------------------+--------------------+
Tar éis bunachar sonraí nua a chruthú i phpMyAdmin, ní mór duitFéach ar ionchódú bunachar sonraí ▼
SHOW CREATE DATABASE db_name;
- 如:
SHOW CREATE DATABASE test;
Mura bhfuil an ionchódú bunachar sonraíutf8mb4, ní mór an tacar carachtar bunachar sonraí a mhodhnú goutf8mb4 .
Conas an tacar carachtar bunachar sonraí a mhodhnú go utf8mb4?
Céim 1: Cliceáil ar ainm an bhunachair shonraí reatha i phpMyAdmin, ansin cliceáil ar SQL.
Céim 2: Cuir isteach an t-ordú seo a leanas chun an tacar carachtar bunachar sonraí a mhodhnúutf8mb4▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- 如:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
Céim 3:Atosaigh an bunachar sonraí MySQL
service mysqld restart
- Sin é.
Seo roinnt samplaí ordú SQL:
Athraigh an tacar carachtar réamhshocraithe agus gach colún carachtar den tábla go dtí an tacar carachtar nua ▼
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;
Mura ndéanann tú ach tacar carachtar réamhshocraithe an tábla a mhodhnú▼
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- 如:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Athraigh an tacar carachtar de réimse ▼
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;
Féach ar an gcód tábla ▼
SHOW CREATE TABLE tbl_name;
Féach ar ionchódú réimse ▼
SHOW FULL COLUMNS FROM tbl_name;
Féach ar ionchódú an bhunachair shonraí reatha ▼
SHOW VARIABLES LIKE 'character_set_%';
- Ní thacaíonn an pacáiste tiománaí mysql-connector-java ach le utf5.1.13mb8 i 4+
Tá súil agam Blag Chen Weiliang ( https://www.chenweiliang.com/ ) roinnte "Conas Emoji a stóráil i MySQL? Fadhb le carachtair chomhartha ceiste Emoji a chur isteach sa bhunachar sonraí", a bheidh ina chuidiú duit.
Fáilte romhat nasc an ailt seo a roinnt:https://www.chenweiliang.com/cwl-26592.html
Chun níos mó cleasanna ceilte a dhíghlasáil🔑, fáilte romhat páirt a ghlacadh inár gcainéal Telegram!
Roinn agus maith más maith leat é! Is iad do chuid scaireanna agus rudaí is maith leat ár spreagadh leanúnach!