Giunsa i-save ang Emoji sa MySQL? Pagsulod sa database Emoji expression question mark problema sa karakter

Kung ang ekspresyon sa Emoji gitipigan sa utf8 encodingdatabase sa MySQLo MariaDB, dili kini mapakita.

Ngano nga ang ekspresyon sa Emoji nga gisulod sa database nahimo nga usa ka karakter nga marka sa pangutana?

Tungod kay ang mga ekspresyon sa Emoji 4-byte nga mga karakter, ug ang utf8 nga set sa karakter nagsuporta lamang sa 1-3 ka byte sa mga karakter, ang mga ekspresyon sa Emoji dili masulat sa database.

Giunsa pagsulbad ang problema nga ang ekspresyon sa Emoji nga gisulod sa database nahimong usa ka karakter nga marka sa pangutana?

Adunay 2 ka solusyon:

  1. Pagsulod sa teksto nga mano-mano, pag-ilis sa upat ka byte nga mga karakter sa naandan nga mga karakter.
  2. pagbag-o MySQL Ang set sa karakter sa database, usba ang set sa karakter sa database gikan sa utf8 hangtod sa utf8mb4, pagsuporta sa mga karakter nga 1-4 byte.

Sa tinuud, ang una nga pamaagi labi ka daghang trabaho ug dili maayo.

Girekomenda nga gamiton ang ikaduha nga solusyon, usba ang MySQL database character set.

Sugod gikan sa MySQL 5.5.3 nga bersyon, ang database makasuporta sa utf4mb8 character set sa 4 bytes, ug ang usa ka karakter mahimong adunay hangtod sa 4 bytes, aron kini makasuporta sa dugang nga character set, ug makatipig usab sa Emoji expressions.

  • Human sa MySQL 5.5.3, mahimo ka nga mag-upgrade sa utf8mb4 character set.
  • Sa samang higayon, ang utf8mb4 kay compatible sa utf8 character set.
  • Ang pag-encode, posisyon ug pagtipig sa mga karakter sa utf8 naa sa utf8mb4.
  • Parehas sa utf8 character set, walay kadaot sa kasamtangan nga datos.

Tungod saphpMyAdminAlang sa bag-ong gibuhat nga mga lamesa sa usa ka bag-ong nahimo nga database, ang default nga pag-encode sa karakter mao ang:Latin1

  • Kini nga pag-encode dili makasulod sa Chinese ug Emoji nga mga ekspresyon;
  • Kinahanglan nimong usbon ang character set encoding sa database character set ug table ngadto sa utf8mb4;
  • Dayon, i-restart ang MySQL, mahimo nimong isulod ang mga ekspresyon sa Chinese ug Emoji.

Solusyon sa problema sa karakter sa MySQL Emoji

Lakang 1:Usba ang MySQL configuration file my.cnf

  • (Ang Windows server kay my.ini,LinuxAng server kay my.cnf)
  • my.cnf file, kasagaran sa/etc/mysql/my.cnfposisyon.
  • CWP Control PanelAng my.cnf file, anaa sa/etc/my.cnfposisyon.

Human nimo kini makit-an, palihug idugang ang mosunod nga sulod sa mosunod nga tulo ka bahin ▼

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

Lakang 2:I-restart ang MySQL database

service mysqld restart

Lakang 3: Susiha pag-usab ang character set ug isulod ang ▼ sa SQL command line

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Susiha kon ang mosunod nga ▼

Giunsa i-save ang Emoji sa MySQL? Pagsulod sa database Emoji expression question mark problema sa karakter

Pagsulod sa mosunod nga SQL command▼

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

Susiha kon kini sama sa mosunod▼

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

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

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

Human sa paghimo og bag-ong database sa phpMyAdmin, kinahanglan nimoTan-awa ang database code ▼

SHOW CREATE DATABASE db_name;
  • Ingon sa:SHOW CREATE DATABASE test;

Kung ang pag-encode sa database diliutf8mb4, kinahanglan nimong usbon ang database character set sautf8mb4 .

Giunsa pag-usab ang karakter sa database nga gitakda sa utf8mb4?

Lakang 1: I-klik ang kasamtangan nga ngalan sa database sa phpMyAdmin, dayon i-klik ang SQL.

Lakang 2: Pagsulod sa mosunod nga sugo aron usbon ang database character set sautf8mb4

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
  • Ingon sa:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;

Lakang 3:I-restart ang MySQL database

service mysqld restart
  • Mao na.

Ania ang pipila ka mga pananglitan sa mga sugo sa SQL:

Usba ang default set sa karakter ug ang tanang column sa karakter sa lamesa ngadto sa bag-ong set sa karakter ▼

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

Kung imo lang usbon ang default character set sa lamesa▼

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

Usba ang set sa karakter sa usa ka field ▼

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

Tan-awa ang table code ▼

SHOW CREATE TABLE tbl_name;

Tan-awa ang Field Codes ▼

SHOW FULL COLUMNS FROM tbl_name;

Tan-awa ang kasamtangan nga database code ▼

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

Paglaum Chen Weiliang Blog ( https://www.chenweiliang.com/ ) mipakigbahin "Unsaon pagluwas sa Emoji ngadto sa MySQL? Pagsulod sa database Emoji ekspresyon pangutana marka problema sa karakter", nga makatabang kanimo.

Welcome sa pagpaambit sa link niini nga artikulo:https://www.chenweiliang.com/cwl-26592.html

Malipayon nga pag-abut sa channel sa Telegram sa blog ni Chen Weiliang aron makuha ang labing bag-ong mga update!

🔔 Mahimong una nga makakuha sa bililhon nga "ChatGPT Content Marketing AI Tool Usage Guide" sa direktoryo sa taas nga channel! 🌟
📚 Kini nga giya adunay daghang kantidad, 🌟Kini usa ka talagsaon nga oportunidad, ayaw palabya ​​kini! ⏰⌛💨
Share ug like kung ganahan ka!
Ang imong pagpaambit ug pag-like mao ang among padayon nga kadasig!

 

发表 评论

Ang imong email address dili mapatik. Gigamit ang mga kinahanglanon nga uma * Label

scroll sa ibabaw