Come salvare Emoji in MySQL Immettere il problema del carattere del punto interrogativo dell'espressione Emoji del database

Se l'espressione Emoji è memorizzata nella codifica utf8Database MySQLo MariaDB, non può essere visualizzato.

Perché l'espressione Emoji inserita nel database diventa un punto interrogativo?

Poiché le espressioni Emoji sono caratteri di 4 byte e il set di caratteri utf8 supporta solo 1-3 byte di caratteri, le espressioni Emoji non possono essere scritte nel database.

Come risolvere il problema che l'espressione Emoji inserita nel database diventa un carattere punto interrogativo?

Ci sono 2 soluzioni:

  1. Immettere il testo manualmente, sostituendo i caratteri a quattro byte con caratteri personalizzati.
  2. 修改 MySQL Set di caratteri del database, modifica il set di caratteri del database da utf8 a utf8mb4, supporta caratteri da 1-4 byte.

In effetti, il primo metodo è troppo faticoso e non è consigliabile.

Si consiglia di utilizzare la seconda soluzione, modificare il set di caratteri del database MySQL.

A partire dalla versione MySQL 5.5.3, il database può supportare il set di caratteri utf4mb8 di 4 byte e un carattere può avere fino a 4 byte, quindi può supportare più set di caratteri e può anche memorizzare espressioni Emoji.

  • Dopo MySQL 5.5.3, puoi praticamente aggiornare senza problemi il set di caratteri utf8mb4.
  • Allo stesso tempo, utf8mb4 è compatibile con il set di caratteri utf8.
  • La codifica, la posizione e la memorizzazione dei caratteri utf8 sono in utf8mb4.
  • Come il set di caratteri utf8, nessun danno ai dati esistenti.

A causa diphpMyAdminPer le tabelle appena create in un database appena creato, la codifica dei caratteri predefinita è:Latin1

  • Questa codifica non può inserire espressioni cinesi ed Emoji;
  • È necessario modificare la codifica del set di caratteri del set di caratteri del database e della tabella in utf8mb4;
  • Quindi, riavvia MySQL, puoi inserire espressioni cinesi ed Emoji.

MySQL Emoji soluzione del problema del carattere

1 :Modificare il file di configurazione MySQL my.cnf

  • (Il server Windows è my.ini,LinuxIl server è my.cnf)
  • my.cnf, di solito in/etc/mysql/my.cnfposizione.
  • Pannello di controllo CWPIl file my.cnf è in/etc/my.cnfposizione.

Dopo averlo trovato, aggiungi il seguente contenuto nelle tre 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'

2 :Riavvia il database MySQL

service mysqld restart

Passaggio 3: controlla di nuovo il set di caratteri e inserisci ▼ nella riga di comando SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Verificare se quanto segue ▼

Come salvare Emoji in MySQL Immettere il problema del carattere del punto interrogativo dell'espressione Emoji del database

Immettere il seguente comando SQL▼

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

Controlla se è come segue▼

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

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

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

Dopo aver creato un nuovo database in phpMyAdmin, deviVisualizza codice database ▼

SHOW CREATE DATABASE db_name;
  • 如:SHOW CREATE DATABASE test;

Se la codifica del database non lo èutf8mb4, è necessario modificare il set di caratteri del database suutf8mb4 .

Come modificare il set di caratteri del database su utf8mb4?

Passaggio 1: fare clic sul nome del database corrente in phpMyAdmin, quindi fare clic su SQL.

Passaggio 2: immettere il comando seguente per modificare il set di caratteri del databaseutf8mb4

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
  • 如:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;

3 :Riavvia il database MySQL

service mysqld restart
  • Questo è tutto.

Ecco alcuni esempi di comandi SQL:

Modificare il set di caratteri predefinito e tutte le colonne di caratteri della tabella nel nuovo set di caratteri ▼

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;

Se modifichi solo il set di caratteri predefinito della tabella▼

ALTER TABLE tbl_name  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • 如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Modifica il set di caratteri di un campo ▼

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;

Visualizza codice tabella ▼

SHOW CREATE TABLE tbl_name;

Visualizza codici campo ▼

SHOW FULL COLUMNS FROM tbl_name;

Visualizza il codice del database corrente ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Il pacchetto driver mysql-connector-java supporta solo utf5.1.13mb8 in 4+

Speranza Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ha condiviso "Come salvare Emoji in MySQL? Inserisci il problema del carattere del punto interrogativo dell'espressione Emoji del database", che ti è utile.

Benvenuti a condividere il link di questo articolo:https://www.chenweiliang.com/cwl-26592.html

Benvenuto nel canale Telegram del blog di Chen Weiliang per ricevere gli ultimi aggiornamenti!

🔔 Sii il primo a ricevere la preziosa "Guida all'utilizzo dello strumento AI di marketing dei contenuti ChatGPT" nella directory principale del canale! 🌟
📚 Questa guida contiene un valore enorme, 🌟Questa è un'opportunità rara, non perderla! ⏰⌛💨
Condividi e metti mi piace se ti va!
La tua condivisione e i tuoi like sono la nostra continua motivazione!

 

发表 评论

L'indirizzo email non verrà pubblicato. 必填 项 已 用 * 标注

滚动 到 顶部