Conas Emoji a shábháil i MySQL?Cuir isteach an bunachar sonraí Fadhb carachtair comhartha ceiste slonn Emoji

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:

  1. Iontráil téacs de láimh, ag cur carachtair saincheaptha in ionad carachtair ceithre bheart.
  2. 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 ▼

Conas Emoji a shábháil i MySQL?Cuir isteach an bunachar sonraí Fadhb carachtair comhartha ceiste slonn Emoji

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+

发表 评论

Ní fhoilseofar do sheoladh ríomhphoist. Úsáidtear réimsí riachtanacha * Lipéad

Scrollaigh go dtí an Barr