Hoe kinne jo Emoji opslaan yn MySQL Fier de database Emoji-ekspresje fraachtekenkarakterprobleem yn

As Emoji-útdrukkingen wurde opslein yn utf8-kodearringMySQL databankof MariaDB, kin it net werjûn wurde.

Wêrom feroaret de Emoji-ekspresje yn 'e databank yn in fraachteken?

Om't Emoji-útdrukkingen 4-byte-tekens binne, en de utf8-tekenset allinich 1-3 byte-tekens stipet, kinne Emoji-útdrukkingen net nei de databank skreaun wurde.

Hoe kinne jo it probleem oplosse dat Emoji-útdrukkingen feroare yn fraachtekentekens doe't se yn 'e database ynfierd binne?

D'r binne 2 oplossingen:

  1. Fier tekst mei de hân yn, ferfanging fan fjouwer-byte karakters mei oanpaste karakters.
  2. feroarje MySQL Database-tekenset, feroarje de databank-tekenset fan utf8 nei utf8mb4, en stipet 1-4 byte-tekens.

Yn feite fereasket de earste metoade tefolle wurk en is net oan te rieden.

It is oan te rieden om de twadde oplossing te brûken om de MySQL-database-tekenset te feroarjen.

Begjin fan MySQL ferzje 5.5.3 kin de databank de 4-byte utf8mb4-tekenset stypje, en in karakter kin oant 4 bytes hawwe, sadat it mear karaktersets kin stypje en Emoji-útdrukkingen opslaan.

  • Nei MySQL 5.5.3 kin it yn prinsipe naadloos wurde opwurdearre nei de utf8mb4-tekenset.
  • Tagelyk is utf8mb4 kompatibel mei de utf8-tekenset.
  • De kodearring, posysje en opslach fan utf8-tekens binne yn utf8mb4.
  • Itselde karakter set as utf8 en sil gjin skea oan besteande gegevens.

Want ynphpMyAdminFoar nij oanmakke tabellen yn nij oanmakke databases is de standertkarakterkodearring:Latin1

  • Dizze kodearring kin Sineeske en Emoji-útdrukkingen net ynfoegje;
  • It is needsaaklik om te feroarjen de databank karakter set en tabel karakter set kodearring nei utf8mb4;
  • Start dan MySQL op 'e nij en jo kinne Sineeske en Emoji-útdrukkingen ynfoegje.

MySQL Emoji karakter probleem oplossing

第 1 步:Feroarje de MySQL-konfiguraasjetriem my.cnf

  • (my.ini foar Windows-tsjinners,linuxDe tsjinner is my.cnf)
  • my.cnf triem, meastal yn/etc/mysql/my.cnfLokaasje.
  • CWP Control PanelIt my.cnf-bestân is yn/etc/my.cnfLokaasje.

Neidat jo it fûn hawwe, foegje asjebleaft de folgjende ynhâld ta yn 'e folgjende trije dielen ▼

[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 步:Start de MySQL-database opnij

service mysqld restart

Stap 3: Kontrolearje de tekenset wer en fier ▼ yn 'e SQL kommandorigel

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Kontrolearje oft it is as folget ▼

Hoe kinne jo Emoji opslaan yn MySQL Fier de database Emoji-ekspresje fraachtekenkarakterprobleem yn

Fier it folgjende SQL-kommando yn▼

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

Kontrolearje oft it is as folget▼

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

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

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

Nei it meitsjen fan in nije databank yn phpMyAdmin, moatte joBesjoch databankkodearring ▼

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

As de databank kodearring is netutf8mb4, moat de databanktekenset wizige wurde ynutf8mb4 .

Hoe kinne jo de databankkarakterset wizigje nei utf8mb4?

Stap 1: Klikje op de hjoeddeistige databasenamme yn phpMyAdmin, klik dan op SQL.

Stap 2: Fier it folgjende kommando yn om de databankkarakterset te feroarjenutf8mb4

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

第 3 步:Start de MySQL-database opnij

service mysqld restart
  • Dat is it.

Hjir binne wat foarbylden fan SQL-kommando's:

Feroarje de standerttekenset en alle karakterkolommen fan 'e tabel nei de nije tekenset ▼

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

As jo ​​allinich de standerttekenset fan 'e tabel wizigje▼

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

Feroarje de tekenset fan in fjild ▼

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

Besjoch tabelkoade ▼

SHOW CREATE TABLE tbl_name;

Besjoch fjildkodearring ▼

SHOW FULL COLUMNS FROM tbl_name;

Besjoch aktuele databankkodearring ▼

SHOW VARIABLES LIKE 'character_set_%';
  • It mysql-connector-java-bestjoerderpakket stipet allinich utf5.1.13mb8 yn 4+

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) dielde "Hoe kinne jo Emoji yn MySQL bewarje? Probleem mei it ynfieren fan Emoji-fraachtekentekens yn 'e databank", dy't jo nuttich wêze sil.

Wolkom om de keppeling fan dit artikel te dielen:https://www.chenweiliang.com/cwl-26592.html

Wolkom by it Telegram-kanaal fan Chen Weiliang's blog om de lêste updates te krijen!

🔔 Wês de earste om de weardefolle "ChatGPT Content Marketing AI Tool Usage Guide" te krijen yn 'e kanaaltopmap! 🌟
📚 Dizze hantlieding befettet enoarme wearde, 🌟Dit is in seldsume kâns, mis it net! ⏰⌛💨
Diel en like as jo wolle!
Jo dielen en likes binne ús trochgeande motivaasje!

 

发表 评论

Jo e-postadres wurdt net publisearre. Ferplichte fjilden wurde brûkt * Etiket

rôlje nei boppen