Kako shraniti Emoji v MySQL? Vnesite zbirko podatkov Emoji izraz vprašaj znak problem

Če je izraz Emoji shranjen v kodiranju utf8Baza podatkov MySQLali MariaDB, ga ni mogoče prikazati.

Zakaj izraz Emoji, vnesen v bazo podatkov, postane vprašaj?

Ker so izrazi Emoji 4-bajtni znaki in nabor znakov utf8 podpira le 1–3 bajte znakov, izrazov Emoji ni mogoče zapisati v bazo podatkov.

Kako rešiti težavo, da izraz Emoji, vnešen v zbirko podatkov, postane znak vprašaja?

Obstajata 2 rešitvi:

  1. Ročno vnesite besedilo in štiribajtne znake zamenjajte z znaki po meri.
  2. spremeniti MySQL Nabor znakov baze podatkov, spremenite nabor znakov baze podatkov iz utf8 v utf8mb4, podpira 1-4 bajtne znake.

Pravzaprav je prva metoda preveč dela in ni priporočljiva.

Priporočljivo je, da uporabite drugo rešitev, spremenite nabor znakov baze podatkov MySQL.

Od različice MySQL 5.5.3 lahko baza podatkov podpira nabor znakov utf4mb8 s 4 bajti, znak pa ima lahko do 4 bajte, tako da lahko podpira več naborov znakov in lahko shrani tudi izraze Emoji.

  • Po MySQL 5.5.3 lahko v bistvu neopazno nadgradite na nabor znakov utf8mb4.
  • Hkrati je utf8mb4 združljiv z naborom znakov utf8.
  • Kodiranje, položaj in shranjevanje znakov utf8 so v utf8mb4.
  • Enako kot nabor znakov utf8, brez poškodb obstoječih podatkov.

zaradiphpMyAdminZa novo ustvarjene tabele v novo ustvarjeni bazi podatkov je privzeto kodiranje znakov:Latin1

  • To kodiranje ne more vstaviti kitajskih izrazov in izrazov Emoji;
  • Spremeniti morate kodiranje nabora znakov nabora znakov in tabele baze podatkov v utf8mb4;
  • Nato znova zaženite MySQL, lahko vstavite kitajske izraze in izraze Emoji.

Rešitev težave z znaki MySQL Emoji

第 1 步:Spremenite konfiguracijsko datoteko MySQL my.cnf

  • (Windows strežnik je my.ini,LinuxStrežnik je my.cnf)
  • my.cnf, običajno v/etc/mysql/my.cnfpoložaj.
  • Nadzorna plošča CWPDatoteka my.cnf je notri/etc/my.cnfpoložaj.

Ko ga najdete, dodajte naslednjo vsebino v naslednje tri dele ▼

[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 步:Znova zaženite bazo podatkov MySQL

service mysqld restart

3. korak: Ponovno preverite nabor znakov in vnesite ▼ v ukazno vrstico SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Preverite, ali je naslednje ▼

Kako shraniti Emoji v MySQL? Vnesite zbirko podatkov Emoji izraz vprašaj znak problem

Vnesite naslednji ukaz SQL▼

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

Preverite, ali je tako▼

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

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

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

Ko ustvarite novo bazo podatkov v phpMyAdmin, morateOglejte si kodo zbirke podatkov ▼

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

Če kodiranje baze podatkov niutf8mb4, morate spremeniti nabor znakov baze podatkov vutf8mb4 .

Kako spremeniti nabor znakov baze podatkov v utf8mb4?

1. korak: Kliknite trenutno ime baze podatkov v phpMyAdmin, nato kliknite SQL.

2. korak: Vnesite naslednji ukaz, da spremenite nabor znakov baze podatkovutf8mb4

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

第 3 步:Znova zaženite bazo podatkov MySQL

service mysqld restart
  • To je vse.

Tukaj je nekaj primerov ukazov SQL:

Spremenite privzeti nabor znakov in vse stolpce znakov v tabeli na nov nabor znakov ▼

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;

Če spremenite samo privzeti nabor znakov tabele▼

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

Spremenite nabor znakov polja ▼

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;

Oglejte si kodo tabele ▼

SHOW CREATE TABLE tbl_name;

Oglejte si kode polj ▼

SHOW FULL COLUMNS FROM tbl_name;

Oglejte si kodo trenutne zbirke podatkov ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Paket gonilnikov mysql-connector-java podpira samo utf5.1.13mb8 v 4+

Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) je delil "Kako shraniti Emoji v MySQL? Vnesite zbirko podatkov Emoji izraz vprašaj znak znak problem", kar vam je v pomoč.

Dobrodošli, da delite povezavo tega članka:https://www.chenweiliang.com/cwl-26592.html

Dobrodošli na kanalu Telegram spletnega dnevnika Chena Weilianga, kjer boste prejeli najnovejše posodobitve!

🔔 Bodite prvi, ki boste prejeli dragocen »Vodnik za uporabo orodja AI za vsebinski marketing ChatGPT« v zgornjem imeniku kanala! 🌟
📚 Ta vodnik ima ogromno vrednosti, 🌟To je redka priložnost, ne zamudite je! ⏰⌛💨
Delite in všečkajte, če vam je všeč!
Vaše deljenje in všečki so naša stalna motivacija!

 

发表 评论

Vaš e-poštni naslov ne bo objavljen. 必填 项 已 用 * Oznaka

滚动 到 顶部