Paano i-save ang Emoji sa MySQL? Ipasok ang database Emoji expression question mark problema sa character

Kung ang Emoji expression ay naka-imbak sa utf8 encodingMySQL databaseo MariaDB, hindi ito maipapakita.

Bakit ang ekspresyong Emoji na ipinasok sa database ay nagiging tandang pananong na character?

Dahil ang mga expression ng Emoji ay 4-byte na character, at ang utf8 character set ay sumusuporta lamang sa 1-3 byte ng mga character, hindi maisusulat ang mga Emoji expression sa database.

Paano malutas ang problema na ang expression ng Emoji na ipinasok sa database ay nagiging isang tandang pananong na character?

Mayroong 2 solusyon:

  1. Manu-manong magpasok ng text, na pinapalitan ang apat na byte na character ng mga custom na character.
  2. baguhin MySQL Database character set, baguhin ang database character set mula utf8 hanggang utf8mb4, suportahan ang 1-4 byte na character.

Sa katunayan, ang unang paraan ay masyadong maraming trabaho at hindi ipinapayong.

Inirerekomenda na gamitin ang pangalawang solusyon, baguhin ang MySQL database character set.

Simula sa bersyon ng MySQL 5.5.3, masusuportahan ng database ang utf4mb8 character set na 4 byte, at ang isang character ay maaaring magkaroon ng hanggang 4 na byte, upang masuportahan nito ang mas maraming character set, at makakapag-imbak din ng mga expression ng Emoji.

  • Pagkatapos ng MySQL 5.5.3, maaari kang mag-upgrade nang walang putol sa utf8mb4 character set.
  • Kasabay nito, ang utf8mb4 ay tugma sa utf8 character set.
  • Ang pag-encode, posisyon at storage ng mga utf8 na character ay nasa utf8mb4.
  • Pareho sa utf8 character set, walang pinsala sa umiiral na data.

Dahil saphpMyAdminPara sa mga bagong likhang talahanayan sa isang bagong likhang database, ang default na pag-encode ng character ay:Latin1

  • Ang pag-encode na ito ay hindi maaaring magpasok ng Chinese at Emoji expression;
  • Kailangan mong baguhin ang character set encoding ng database character set at table sa utf8mb4;
  • Pagkatapos, i-restart ang MySQL, maaari mong ipasok ang mga expression ng Chinese at Emoji.

Solusyon sa problema sa karakter ng MySQL Emoji

第 1 步 :Baguhin ang MySQL configuration file my.cnf

  • (Ang Windows server ay my.ini,LinuxAng server ay my.cnf)
  • my.cnf file, kadalasang nasa/etc/mysql/my.cnfposisyon
  • CWP Control PanelAng my.cnf file, ay nasa/etc/my.cnfposisyon

Pagkatapos mong mahanap ito, mangyaring idagdag ang sumusunod na nilalaman sa sumusunod na tatlong bahagi ▼

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

第 2 步 :I-restart ang MySQL database

service mysqld restart

Hakbang 3: Suriin muli ang set ng character at ilagay ang ▼ sa SQL command line

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Suriin kung ang sumusunod na ▼

Paano i-save ang Emoji sa MySQL? Ipasok ang database Emoji expression question mark problema sa character

Ipasok ang sumusunod na SQL command▼

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

Suriin kung ito ay ang mga sumusunod▼

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

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

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

Pagkatapos gumawa ng bagong database sa phpMyAdmin, kailangan moTingnan ang database code ▼

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

Kung ang database encoding ay hindiutf8mb4, dapat mong baguhin ang database character set sautf8mb4 .

Paano baguhin ang database character set sa utf8mb4?

Hakbang 1: I-click ang kasalukuyang pangalan ng database sa phpMyAdmin, pagkatapos ay i-click ang SQL.

Hakbang 2: Ilagay ang sumusunod na command para baguhin ang database character set sautf8mb4

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

第 3 步 :I-restart ang MySQL database

service mysqld restart
  • Ayan yun.

Narito ang ilang halimbawa ng mga SQL command:

Baguhin ang default na set ng character at lahat ng column ng character ng talahanayan sa bagong set ng character ▼

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;

Kung babaguhin mo lang ang default na set ng character ng talahanayan▼

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

Baguhin ang set ng character ng isang field ▼

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;

Tingnan ang table code ▼

SHOW CREATE TABLE tbl_name;

Tingnan ang Mga Field Code ▼

SHOW FULL COLUMNS FROM tbl_name;

Tingnan ang kasalukuyang database code ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Ang mysql-connector-java driver package ay sumusuporta lamang sa utf5.1.13mb8 sa 4+

发表 评论

Ang iyong email address ay hindi maipa-publish. 必填 项 已 用 * Tatak

Mag-scroll sa Tuktok