Cikkkönyvtár
Ha az emojik MySQL vagy MariaDB adatbázisban vannak UTF-8 kódolásban tárolva, akkor nem fognak megjelenni.
Miért válik az adatbázisba beírt Emoji kifejezés kérdőjel karakterré?
Mivel az emoji kifejezések 4 bájtos karakterek, és az utf8 karakterkészlet csak 1-3 bájt karaktert támogat, az emoji kifejezések nem írhatók be az adatbázisba.
Hogyan lehet megoldani azt a problémát, hogy az adatbázisba bevitt Emoji kifejezés kérdőjel karakterré válik?
2 megoldás létezik:
- Írja be a szöveget kézzel, a négybájtos karaktereket egyéni karakterekre cserélve.
- módosít MySQL Adatbázis karakterkészlet, módosítsa az adatbázis karakterkészletét utf8-ról utf8mb4-re, támogatja az 1-4 bájtos karaktereket.
Valójában az első módszer túl sok munka, és nem tanácsos.
Javasoljuk a második megoldást, a MySQL adatbázis karakterkészletének módosítását.
A MySQL 5.5.3-as verziójától kezdve az adatbázis támogatja a 4 bájtos utf8mb4 karakterkészletet, és egy karakter legfeljebb 4 bájtos lehet, így több karakterkészletet is támogathat, és Emoji kifejezéseket is tárolhat.
- A MySQL 5.5.3 után alapvetően zökkenőmentesen frissíthető az utf8mb4 karakterkészletre.
- Ugyanakkor az utf8mb4 kompatibilis az utf8 karakterkészlettel.
- Az utf8 karakterek kódolása, pozíciója és tárolása az utf8mb4-ben található.
- Ugyanaz, mint az utf8 karakterkészlet, nem sérti a meglévő adatokat.
KövetkeztébenphpMyAdminAz újonnan létrehozott adatbázisban újonnan létrehozott táblák esetében az alapértelmezett karakterkódolás a következő:Latin1
- Ez a kódolás nem illeszthet be kínai és emoji kifejezéseket;
- Az adatbázis karakterkészletének és táblájának karakterkészlet-kódolását utf8mb4-re kell módosítani;
- Ezután indítsa újra a MySQL-t, és szúrhat be kínai és emoji kifejezéseket.
MySQL Emoji karakterprobléma megoldás
1. lépés: Módosítsa a my.cnf MySQL konfigurációs fájlt
- (A Windows szerver a my.ini,LinuxA szerver a my.cnf)
- my.cnf fájl, általában benne
/etc/mysql/my.cnfElhelyezkedés. - CWP VezérlőpultA my.cnf fájl bent van
/etc/my.cnfElhelyezkedés.
Miután megtalálta, kérjük, adja hozzá a következő tartalmat a következő három részhez ▼
[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. lépés: Indítsa újra a MySQL adatbázist
service mysqld restart
3. lépés: Ellenőrizze újra a karakterkészletet, és írja be a ▼ karaktert az SQL parancssorba
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
Ellenőrizze, hogy a következő ▼

Írja be a következő SQL-parancsot▼
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Ellenőrizze, hogy az alábbiak szerint van-e
+--------------------------+--------------------+ | 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 | +--------------------------+--------------------+
Miután létrehoztál egy új adatbázist a phpMyAdminban, ellenőrizned kell az adatbázis kódolását. ▼
SHOW CREATE DATABASE db_name;
- 如:
SHOW CREATE DATABASE test;
Ha az adatbázis kódolása nemutf8mb4, módosítania kell az adatbázis karakterkészletétutf8mb4 .
Hogyan módosítható az adatbázis karakterkészlete utf8mb4-re?
1. lépés: Kattintson az aktuális adatbázis nevére a phpMyAdmin alkalmazásban, majd kattintson az SQL elemre.
2. lépés: Írja be a következő parancsot az adatbázis karakterkészletének módosításáhozutf8mb4▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- 如:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
3. lépés: Indítsa újra a MySQL adatbázist
service mysqld restart
- Ez az.
Íme néhány példa az SQL parancsokra:
Módosítsa az alapértelmezett karakterkészletet és a táblázat összes karakteroszlopát az új karakterkészletre ▼
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;
Ha csak a táblázat alapértelmezett karakterkészletét módosítja▼
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- 如:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Mező karakterkészletének módosítása ▼
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;
Táblázatkód megtekintése ▼
SHOW CREATE TABLE tbl_name;
Mezőkódok megtekintése ▼
SHOW FULL COLUMNS FROM tbl_name;
Az aktuális adatbázis kód megtekintése ▼
SHOW VARIABLES LIKE 'character_set_%';
- A mysql-connector-java illesztőprogram-csomag csak az utf5.1.13mb8-et támogatja az 4+ verzióban
Remélhetőleg hasznosnak találod a Chen Weiliang blogján ( https://www.chenweiliang.com/ ) megosztott "Hogyan tároljunk emojikat a MySQL-ben? Problémák az emoji kérdőjel karakterek adatbázisba bevitelével" című cikket .
Nyugodtan oszd meg a cikk linkjét: https://www.chenweiliang.com/cwl-26592.html
