Kako sačuvati Emoji u MySQL?Unesite u bazu podataka Emoji izraz znaka pitanja

Ako je Emoji izraz pohranjen u utf8 kodiranjuMySQL baza podatakaili MariaDB, ne može se prikazati.

Zašto izraz Emoji uneseni u bazu podataka postaje znak upitnika?

Budući da su Emoji izrazi znakovi od 4 bajta, a skup znakova utf8 podržava samo 1-3 bajta znakova, Emoji izrazi se ne mogu upisati u bazu podataka.

Kako riješiti problem da Emoji izraz uneseni u bazu podataka postane znak upitnika?

Postoje 2 rješenja:

  1. Unesite tekst ručno, zamjenjujući četverobajtne znakove prilagođenim znakovima.
  2. modificirati MySQL Skup znakova baze podataka, promijenite skup znakova baze podataka iz utf8 u utf8mb4, podržava znakove od 1-4 bajta.

U stvari, prva metoda je previše posla i nije preporučljiva.

Preporučljivo je koristiti drugo rješenje, modificirati MySQL skup znakova baze podataka.

Od verzije MySQL 5.5.3, baza podataka može podržati utf4mb8 skup znakova od 4 bajta, a znak može imati do 4 bajta, tako da može podržati više skupova znakova, a može i pohraniti Emoji izraze.

  • Nakon MySQL 5.5.3, možete u osnovi neprimetno nadograditi na utf8mb4 skup znakova.
  • U isto vrijeme, utf8mb4 je kompatibilan sa utf8 skupom znakova.
  • Kodiranje, pozicija i skladištenje utf8 znakova su u utf8mb4.
  • Isto kao skup znakova utf8, bez oštećenja postojećih podataka.

ZahvaljujućiphpMyAdminZa novokreirane tabele u novokreiranoj bazi podataka, podrazumevano kodiranje znakova je:Latin1

  • Ovo kodiranje ne može umetnuti kineski i Emoji izraze;
  • Morate promijeniti kodiranje skupa znakova skupa znakova i tablice baze podataka u utf8mb4;
  • Zatim, ponovo pokrenite MySQL, možete umetnuti kineski i Emoji izraze.

Rješenje problema sa MySQL emoji karakterima

Korak 1:Izmijenite MySQL konfiguracijski fajl my.cnf

  • (Windows server je my.ini,LinuxServer je my.cnf)
  • my.cnf fajl, obično u/etc/mysql/my.cnfpozicija.
  • CWP Control PanelDatoteka my.cnf je unutra/etc/my.cnfpozicija.

Nakon što ga pronađete, dodajte sljedeći sadržaj u sljedeća tri dijela ▼

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

Korak 2:Ponovo pokrenite MySQL bazu podataka

service mysqld restart

Korak 3: Ponovo provjerite skup znakova i unesite ▼ u SQL red za naredbe

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Provjerite je li sljedeće ▼

Kako sačuvati Emoji u MySQL?Unesite u bazu podataka Emoji izraz znaka pitanja

Unesite sljedeću SQL naredbu▼

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

Provjerite da li je kako slijedi▼

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

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

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

Nakon kreiranja nove baze podataka u phpMyAdmin, moratePogledajte kod baze podataka ▼

SHOW CREATE DATABASE db_name;
  • Kao što su:SHOW CREATE DATABASE test;

Ako kodiranje baze podataka nijeutf8mb4, morate izmijeniti skup znakova baze podataka uutf8mb4 .

Kako izmijeniti skup znakova baze podataka u utf8mb4?

Korak 1: Kliknite na ime trenutne baze podataka u phpMyAdmin, a zatim kliknite na SQL.

Korak 2: Unesite sljedeću naredbu da promijenite skup znakova baze podatakautf8mb4

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
  • Kao što su:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;

Korak 3:Ponovo pokrenite MySQL bazu podataka

service mysqld restart
  • To je to.

Evo nekoliko primjera SQL naredbi:

Promijenite zadani skup znakova i sve kolone znakova u tablici na novi skup znakova ▼

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • Kao što su:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Ako samo modificirate zadani skup znakova u tabeli▼

ALTER TABLE tbl_name  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • Kao što su:ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Izmijenite skup znakova polja ▼

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

Pogledajte kod tabele ▼

SHOW CREATE TABLE tbl_name;

Pogledajte kodove polja ▼

SHOW FULL COLUMNS FROM tbl_name;

Pogledajte trenutni kod baze podataka ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Paket drajvera mysql-connector-java podržava samo utf5.1.13mb8 u 4+

Komentari

Vaša email adresa neće biti objavljena. Koriste se obavezna polja * Oznaka

Dođite na vrh