Ako uložiť Emoji do MySQL Zadajte do databázy Emoji výraz otáznik znak problém

Ak je výraz Emoji uložený v kódovaní utf8Databáza MySQLalebo MariaDB, nedá sa zobraziť.

Prečo sa výraz Emoji zadaný do databázy stane znakom otáznika?

Pretože výrazy Emoji sú 4-bajtové znaky a znaková sada utf8 podporuje iba 1-3 bajty znakov, výrazy Emoji nemožno zapisovať do databázy.

Ako vyriešiť problém, že výraz Emoji zadaný do databázy sa stane znakom otáznika?

Sú 2 riešenia:

  1. Zadajte text manuálne a nahraďte štvorbajtové znaky vlastnými znakmi.
  2. upraviť MySQL Znaková sada databázy, zmena znakovej sady databázy z utf8 na utf8mb4, podpora 1-4 bajtových znakov.

V skutočnosti je prvá metóda príliš náročná na prácu a neodporúča sa.

Odporúča sa použiť druhé riešenie, upraviť znakovú sadu databázy MySQL.

Od verzie MySQL 5.5.3 môže databáza podporovať znakovú sadu utf4mb8 4 bajty a znak môže mať až 4 bajty, takže môže podporovať viac znakových sád a tiež môže ukladať výrazy Emoji.

  • Po MySQL 5.5.3 môžete v podstate bez problémov upgradovať na znakovú sadu utf8mb4.
  • Zároveň je utf8mb4 kompatibilný so znakovou sadou utf8.
  • Kódovanie, umiestnenie a ukladanie znakov utf8 sú v utf8mb4.
  • Rovnaké ako znaková sada utf8, žiadne poškodenie existujúcich údajov.

KvôliphpMyAdminPre novovytvorené tabuľky v novovytvorenej databáze je predvolené kódovanie znakov:Latin1

  • Toto kódovanie nedokáže vložiť čínske výrazy a výrazy Emoji;
  • Musíte zmeniť kódovanie znakovej sady databázovej znakovej sady a tabuľky na utf8mb4;
  • Potom reštartujte MySQL, môžete vložiť čínske výrazy a výrazy Emoji.

Riešenie problému so znakmi MySQL Emoji

第 1 步:Upravte konfiguračný súbor MySQL my.cnf

  • (Windows server je my.ini,LinuxServer je my.cnf)
  • súbor my.cnf, zvyčajne v/etc/mysql/my.cnfpozíciu.
  • Ovládací panel CWPSúbor my.cnf je in/etc/my.cnfpozíciu.

Keď ho nájdete, pridajte nasledujúci obsah do nasledujúcich troch častí ▼

[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 步:Reštartujte databázu MySQL

service mysqld restart

Krok 3: Znova skontrolujte znakovú sadu a do príkazového riadku SQL zadajte ▼

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Skontrolujte, či nasledujúce ▼

Ako uložiť Emoji do MySQL Zadajte do databázy Emoji výraz otáznik znak problém

Zadajte nasledujúci príkaz SQL▼

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

Skontrolujte, či je to takto▼

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

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

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

Po vytvorení novej databázy v phpMyAdmin musíteZobraziť kód databázy ▼

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

Ak nie je kódovanie databázyutf8mb4, musíte upraviť znakovú sadu databázy nautf8mb4 .

Ako upraviť znakovú sadu databázy na utf8mb4?

Krok 1: Kliknite na názov aktuálnej databázy v phpMyAdmin a potom kliknite na SQL.

Krok 2: Zadajte nasledujúci príkaz na úpravu znakovej sady databázyutf8mb4

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

第 3 步:Reštartujte databázu MySQL

service mysqld restart
  • To je všetko.

Tu je niekoľko príkladov príkazov SQL:

Zmeňte predvolenú znakovú sadu a všetky stĺpce znakov v tabuľke na novú znakovú sadu ▼

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;

Ak upravíte iba predvolenú znakovú sadu tabuľky▼

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

Upravte znakovú sadu poľa ▼

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;

Zobraziť kód tabuľky ▼

SHOW CREATE TABLE tbl_name;

Zobraziť kódy polí ▼

SHOW FULL COLUMNS FROM tbl_name;

Zobraziť aktuálny kód databázy ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Balík ovládača mysql-connector-java podporuje iba utf5.1.13mb8 vo verzii 4+

Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) zdieľal "Ako uložiť Emoji do MySQL? Zadajte do databázy Emoji výraz otáznik znak problém", čo je pre vás užitočné.

Vitajte pri zdieľaní odkazu na tento článok:https://www.chenweiliang.com/cwl-26592.html

Vitajte na telegramovom kanáli blogu Chen Weiliang, kde získate najnovšie aktualizácie!

🔔 Buďte prvý, kto získa cennú „Sprievodcu používaním nástroja AI pre obsahový marketing ChatGPT“ v hlavnom adresári kanála! 🌟
📚 Táto príručka obsahuje obrovskú hodnotu, 🌟Toto je vzácna príležitosť, nenechajte si ju ujsť! ⏰⌛💨
Ak sa vám páči, zdieľajte a lajkujte!
Vaše zdieľanie a lajky sú našou neustálou motiváciou!

 

发表 评论

Vaša emailová adresa nebude zverejnená. 必填 项 已 用 * Štítok

prejdite na začiatok