Hogyan lehet menteni az Emoji-t a MySQL-be? Írja be az adatbázisba az Emoji kifejezés kérdőjel karakter probléma

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:

  1. Írja be a szöveget kézzel, a négybájtos karaktereket egyéni karakterekre cserélve.
  2. 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ő ▼

Hogyan lehet menteni az Emoji-t a MySQL-be? Írja be az adatbázisba az Emoji kifejezés kérdőjel karakter probléma

Í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

发表 评论

您的邮箱地址不会被公开.必填项已用*标注

Lapozzon a lap tetejére