Sida loo kaydiyo Emoji gudaha MySQL? Geli kaydka xogta Emoji odhaahda su'aasha calaamada jilaha

Haddii muujinta Emoji lagu kaydiyo utf8 codayntadatabase MySQLama MariaDB, lama soo bandhigi karo.

Muxuu Emoji odhaahda loo geliyey kaydka xogta u noqotaa calaamad su'aal?

Sababtoo ah tibaaxaha Emoji waa xarfo 4-byte ah, iyo xarfaha utf8 ee dhigay kaliya waxay taageertaa 1-3 bytes ee jilayaasha, tibaaxaha Emoji laguma qori karo xogta macluumaadka.

Sidee loo xalliyaa dhibaatada uu Emoji odhaahda geliyey kaydka xogta ay noqoto calaamad su'aal?

Waxaa jira 2 xal:

  1. Geli qoraalka gacanta, adigoo ku beddelaya xarfo afar-byte ah oo leh xarfo gaar ah.
  2. wax ka beddel MySQL Dejinta xarfaha database-ka, ka beddel xarfaha kaydka xogta utf8 una beddel utf8mb4, taageer 1-4 xarfaha byte.

Dhab ahaantii, habka ugu horreeya waa shaqo aad u badan mana aha talo.

Waxaa lagu talinayaa in la isticmaalo xalka labaad, wax ka beddel xogta xogta MySQL.

Laga bilaabo nooca MySQL 5.5.3, kaydku wuxuu taageeri karaa qaabka utf4mb8 ee 4 bytes, jilaaguna wuxuu yeelan karaa ilaa 4 bytes, si ay u taageerto jaantusyo badan, sidoo kale waxay kaydin kartaa tibaaxaha Emoji.

  • MySQL 5.5.3 ka dib, waxaad asal ahaan si aan kala sooc lahayn u cusboonaysiin kartaa hab-dhaqanka utf8mb4.
  • Isla mar ahaantaana, utf8mb4 waxay la jaan qaadaysaa hab-dhaqanka utf8.
  • Codaynta, booska iyo kaydinta jilayaasha utf8 waxay ku jiraan utf8mb4.
  • La mid ah qaabka utf8, wax dhaawac ah ma soo gaarin xogta jirta.

Sababtoo ahphpMyAdminJadwalka cusub ee la sameeyay ee ku jira xog ururin cusub oo la sameeyay, codaynta dabeecadda caadiga ah waa:Latin1

  • Codayntani ma geli karto shiinees iyo Emoji;
  • Waxaad u baahan tahay inaad beddesho xarfaha dejisan ee koodka kaydinta xogta iyo miiska una beddelo utf8mb4;
  • Kadib, dib u bilaw MySQL, waxaad geli kartaa shiinees iyo Emoji odhaahyo.

MySQL Emoji xal dhibaatada

Tallaabada 1:Wax ka beddel faylka qaabeynta MySQL my.cnf

  • (Windows server waa my.ini,LinuxServerku waa my.cnf)
  • my.cnf faylka, inta badan gudaha/etc/mysql/my.cnfGoobta
  • CWP Control PanelFaylka my.cnf, waa ku jiraa/etc/my.cnfGoobta

Kadib markaad hesho, fadlan ku dar nuxurka soo socda saddexda qaybood ee soo socda ▼

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

Tallaabada 2:Dib u bilaw xogta MySQL

service mysqld restart

Talaabada 3: Mar labaad hubi jilaha la dhigay oo geli ▼ khadka taliska SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Hubi haddii kuwan soo socdaa ▼

Sida loo kaydiyo Emoji gudaha MySQL? Geli kaydka xogta Emoji odhaahda su'aasha calaamada jilaha

Geli amarka soo socda ee SQL▼

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

Hubi inay tahay sida soo socota▼

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

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

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

Kadib abuurista xog cusub oo ku jirta phpMyAdmin, waa inaadEeg koodhka xogta macluumaadka ▼

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

Haddi aanay kaydka kaydku ahaynutf8mb4, waa in aad wax ka bedeshaa xarfaha kaydka xogta ee loo dejiyayutf8mb4 .

Sida loo beddelo xarfaha kaydka xogta ee loo dejiyay utf8mb4?

Talaabada 1: Guji magaca database ee hadda jira ee phpMyAdmin, ka dibna dhagsii SQL.

Talaabada 2: Geli amarka soo socda si aad wax uga bedesho astaanta xogta ee loo dejiyayutf8mb4

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

Tallaabada 3:Dib u bilaw xogta MySQL

service mysqld restart
  • Waa kaas.

Waa kuwan tusaalooyin qaar oo amarrada SQL ah:

U beddel jaantuska caadiga ah iyo dhammaan tiirarka jilayaasha shaxda una beddel xarfaha cusub ▼

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

Haddii aad kaliya wax ka beddesho qaabka caadiga ah ee shaxda▼

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

Wax ka beddel qaabka goobta ▼

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

Eeg koodka miiska ▼

SHOW CREATE TABLE tbl_name;

Eeg Xeerarka Goobta ▼

SHOW FULL COLUMNS FROM tbl_name;

Eeg koodhka xog ururinta ee hadda ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Xirmada darawalka mysql-connector-java waxay kaliya taageertaa utf5.1.13mb8 gudaha 4+

评论

Ciwaanka emailkaaga lama daabici doono 项 已 用 * Calaamadda

Scroll to top