Jak uložit Emoji do MySQL Zadejte do databáze Emoji výraz otazník znak problém

Pokud je výraz Emoji uložen v kódování utf8MySQL databázenebo MariaDB, nelze jej zobrazit.

Proč se výraz Emoji zadaný do databáze stane znakem otazníku?

Protože výrazy Emoji jsou 4bajtové znaky a znaková sada utf8 podporuje pouze 1–3 bajty znaků, nelze výrazy Emoji zapsat do databáze.

Jak vyřešit problém, že se z výrazu Emoji zadaného do databáze stane znak otazníku?

Existují 2 řešení:

  1. Zadejte text ručně a nahraďte čtyřbajtové znaky vlastními znaky.
  2. upravit MySQL Znaková sada databáze, změna znakové sady databáze z utf8 na utf8mb4, podpora 1-4 bajtových znaků.

Ve skutečnosti je první metoda příliš pracná a není vhodná.

Doporučuje se použít druhé řešení, upravit znakovou sadu databáze MySQL.

Počínaje verzí MySQL 5.5.3 může databáze podporovat znakovou sadu utf4mb8 o 4 bajtech a znak může mít až 4 bajty, takže může podporovat více znakových sad a také může ukládat výrazy Emoji.

  • Po MySQL 5.5.3 můžete v podstatě bez problémů upgradovat na znakovou sadu utf8mb4.
  • Zároveň je utf8mb4 kompatibilní se znakovou sadou utf8.
  • Kódování, pozice a ukládání znaků utf8 jsou v utf8mb4.
  • Stejné jako znaková sada utf8, žádné poškození stávajících dat.

KvůliphpMyAdminPro nově vytvořené tabulky v nově vytvořené databázi je výchozí kódování znaků:Latin1

  • Toto kódování nemůže vložit čínské výrazy a výrazy Emoji;
  • Musíte změnit kódování znakové sady znakové sady a tabulky databáze na utf8mb4;
  • Poté restartujte MySQL, můžete vložit čínské výrazy a výrazy Emoji.

Řešení problému se znakem MySQL Emoji

第 1 步:Upravte konfigurační soubor MySQL my.cnf

  • (Windows server je my.ini,LinuxServer je my.cnf)
  • soubor my.cnf, obvykle v/etc/mysql/my.cnfpozice.
  • Ovládací panel CWPSoubor my.cnf je in/etc/my.cnfpozice.

Až to najdete, přidejte do následujících tří částí následující obsah ▼

[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 步:Restartujte databázi MySQL

service mysqld restart

Krok 3: Znovu zkontrolujte znakovou sadu a zadejte ▼ do příkazového řádku SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Zkontrolujte, zda následující ▼

Jak uložit Emoji do MySQL Zadejte do databáze Emoji výraz otazník znak problém

Zadejte následující příkaz SQL▼

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

Zkontrolujte, zda 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 vytvoření nové databáze v phpMyAdmin musíteZobrazit kód databáze ▼

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

Pokud není kódování databázeutf8mb4, musíte upravit znakovou sadu databáze nautf8mb4 .

Jak upravit znakovou sadu databáze na utf8mb4?

Krok 1: Klikněte na název aktuální databáze v phpMyAdmin a poté klikněte na SQL.

Krok 2: Zadejte následující příkaz pro úpravu znakové sady databázeutf8mb4

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

第 3 步:Restartujte databázi MySQL

service mysqld restart
  • A je to.

Zde je několik příkladů příkazů SQL:

Změňte výchozí znakovou sadu a všechny sloupce znaků v tabulce na novou znakovou 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;

Pokud pouze upravíte výchozí znakovou sadu tabulky▼

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

Upravte znakovou sadu pole ▼

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;

Zobrazit kód tabulky ▼

SHOW CREATE TABLE tbl_name;

Zobrazit kódy polí ▼

SHOW FULL COLUMNS FROM tbl_name;

Zobrazit aktuální kód databáze ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Balíček ovladače mysql-connector-java podporuje pouze utf5.1.13mb8 ve verzi 4+

Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) sdílené "Jak uložit Emoji do MySQL? Zadejte do databáze Emoji výraz otazník znak problém", což je pro vás užitečné.

Vítejte u sdílení odkazu na tento článek:https://www.chenweiliang.com/cwl-26592.html

Vítejte na telegramovém kanálu blogu Chen Weiliang, kde získáte nejnovější aktualizace!

🔔 Buďte první, kdo získá cenný „Průvodce používáním nástroje AI pro obsahový marketing ChatGPT“ v hlavním adresáři kanálu! 🌟
📚 Tento průvodce má obrovskou hodnotu, 🌟Toto je vzácná příležitost, nenechte si ji ujít! ⏰⌛💨
Sdílejte a lajkujte, pokud se vám líbí!
Vaše sdílení a lajky jsou naší neustálou motivací!

 

发表 评论

Vaše e-mailová adresa nebude zveřejněna. 必填 项 已 用 * 标注

滚动 到 顶部