Articulu Directory
- 1 Perchè l'espressione Emoji inserita in a basa di dati diventa un caratteru d'interrogazione?
- 2 Cumu risolve u prublema chì l'espressione Emoji inserita in a basa di dati diventa un caratteru di quistione?
- 3 Soluzione di prublema di caratteri MySQL Emoji
- 4 Cumu mudificà u set di caratteri di a basa di dati à utf8mb4?
Se l'espressione Emoji hè almacenata in codificazione utf8basa di dati MySQLo MariaDB, ùn pò micca esse visualizatu.
Perchè l'espressione Emoji inserita in a basa di dati diventa un caratteru d'interrogazione?
Perchè l'espressioni Emoji sò caratteri di 4 byte, è u set di caratteri utf8 supporta solu 1-3 bytes di caratteri, l'espressioni Emoji ùn ponu esse scritte in a basa di dati.
Cumu risolve u prublema chì l'espressione Emoji inserita in a basa di dati diventa un caratteru di quistione?
Ci sò 2 suluzioni:
- Inserite u testu manualmente, rimpiazzendu caratteri di quattru byte cù caratteri persunalizati.
- mudificà MySQL Set di caratteri di basa di dati, cambia u set di caratteri di basa di dati da utf8 à utf8mb4, supporta caratteri 1-4 byte.
In fatti, u primu mètudu hè troppu travagliu è ùn hè micca cunsigliatu.
Hè ricumandemu di utilizà a seconda suluzione, mudificà u set di caratteri di a basa di dati MySQL.
Partendu da a versione MySQL 5.5.3, a basa di dati pò sustene u set di caratteri utf4mb8 di 4 bytes, è un caratteru pò avè finu à 4 bytes, cusì pò sustene più setti di caratteri, è ancu ponu almacenà espressioni Emoji.
- Dopu à MySQL 5.5.3, pudete basualmente aghjurnà perfettamente à u set di caratteri utf8mb4.
- À u listessu tempu, utf8mb4 hè cumpatibile cù u set di caratteri utf8.
- A codificazione, a pusizione è u almacenamiento di caratteri utf8 sò in utf8mb4.
- U listessu cum'è u set di caratteri utf8, senza danni à e dati esistenti.
À causa diphpMyAdminPer i tavulini creati di novu in una basa di dati creata, a codificazione di caratteri predeterminata hè:Latin1
- Questa codificazione ùn pò micca inserisce espressioni Chinese è Emoji;
- Avete bisognu di cambià a codificazione di u set di caratteri di u set di caratteri di a basa di dati è a tavola à utf8mb4;
- Allora, ripigliate MySQL, pudete inserisce espressioni Chinese è Emoji.
Soluzione di prublema di caratteri MySQL Emoji
Passu 1:Mudificà u schedariu di cunfigurazione MySQL my.cnf
- (U servitore Windows hè my.ini,LinuxU servitore hè my.cnf)
- my.cnf file, di solitu in
/etc/mysql/my.cnfpusizione. - Pannellu di cuntrollu CWPU schedariu my.cnf, hè in
/etc/my.cnfpusizione.
Dopu chì l'avete trovu, aghjunghje u cuntenutu seguente in e trè parti seguenti ▼
[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'
Passu 2:Riavvia a basa di dati MySQL
service mysqld restart
Passu 3: Verificate u settore di caratteri è entre in ▼ in a linea di cummanda SQL
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
Verificate se i seguenti ▼

Inserite u seguitu cumandamentu SQL ▼
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Verificate s'ellu hè cusì ▼
+--------------------------+--------------------+ | 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 | +--------------------------+--------------------+
Dopu avè creatu una nova basa di dati in phpMyAdmin, avete bisognuVede u codice di a basa di dati ▼
SHOW CREATE DATABASE db_name;
- Cum'è:
SHOW CREATE DATABASE test;
Se a codificazione di basa di dati ùn hè miccautf8mb4, duvete mudificà u set di caratteri di a basa di datiutf8mb4 .
Cumu mudificà u set di caratteri di a basa di dati à utf8mb4?
Passu 1: Cliccate u nome di a basa di dati attuale in phpMyAdmin, dopu cliccate SQL.
Passu 2: Inserite u cumandimu seguitu per mudificà u set di caratteri di a basa di datiutf8mb4▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- Cum'è:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
Passu 3:Riavvia a basa di dati MySQL
service mysqld restart
- Eccu.
Eccu alcuni esempi di cumandamenti SQL:
Cambia u set di caratteri predeterminatu è tutte e colonne di caratteri di a tavula à u novu set di caratteri ▼
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- Cum'è:
ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Se solu mudificà u set di caratteri predeterminatu di a tavola▼
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- Cum'è:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Mudificà u settore di caratteri di un campu ▼
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name
- Cum'è:
ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
Vede u codice di a tabella ▼
SHOW CREATE TABLE tbl_name;
Vede i Codici di Campu ▼
SHOW FULL COLUMNS FROM tbl_name;
Vede u codice attuale di a basa di dati ▼
SHOW VARIABLES LIKE 'character_set_%';
- U pacchettu di driver mysql-connector-java supporta solu utf5.1.13mb8 in 4+
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) hà spartutu "Cumu salvà Emoji in MySQL? Inserite a basa di dati Emoji expression question mark character problem", chì hè d'aiutu per voi.
Benvenuti à sparte u ligame di stu articulu:https://www.chenweiliang.com/cwl-26592.html
