Cumu salvà Emoji in MySQL? Intra in a basa di dati Emoji expression question mark character problem

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:

  1. Inserite u testu manualmente, rimpiazzendu caratteri di quattru byte cù caratteri persunalizati.
  2. 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 ▼

Cumu salvà Emoji in MySQL? Intra in a basa di dati Emoji expression question mark character problem

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+

发表 评论

U vostru indirizzu email ùn serà micca publicatu. I campi richiesti sò aduprati * Etichetta

Libru di Top