Article Directory
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:
- Unesite tekst ručno, zamjenjujući četverobajtne znakove prilagođenim znakovima.
- 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 ▼

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+
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) je podijelio "Kako sačuvati Emoji u MySQL? Unesite problem sa znakom upitnika u bazi Emoji izraza", što vam je od pomoći.
Dobrodošli da podijelite link ovog članka:https://www.chenweiliang.com/cwl-26592.html
Da biste otključali još skrivenih trikova🔑, dobrodošli da se pridružite našem Telegram kanalu!
Podijelite i lajkujte ako vam se sviđa! Vaša dijeljenja i lajkovi su naša stalna motivacija!