Comment enregistrer Emoji dans MySQL Entrez dans la base de données Problème de caractère de point d'interrogation d'expression d'Emoji

Si l'expression Emoji est stockée dans l'encodage utf8Base de données MySQLou MariaDB, il ne peut pas être affiché.

Pourquoi l'expression Emoji saisie dans la base de données devient-elle un point d'interrogation ?

Étant donné que les expressions Emoji sont des caractères de 4 octets et que le jeu de caractères utf8 ne prend en charge que 1 à 3 octets de caractères, les expressions Emoji ne peuvent pas être écrites dans la base de données.

Comment résoudre le problème selon lequel l'expression Emoji entrée dans la base de données devient un point d'interrogation ?

Il existe 2 solutions :

  1. Saisissez le texte manuellement, en remplaçant les caractères à quatre octets par des caractères personnalisés.
  2. modifier MySQL Jeu de caractères de la base de données, modifiez le jeu de caractères de la base de données de utf8 à utf8mb4, prenez en charge les caractères de 1 à 4 octets.

En fait, la première méthode demande trop de travail et n'est pas conseillée.

Il est recommandé d'utiliser la deuxième solution, modifier le jeu de caractères de la base de données MySQL.

À partir de la version MySQL 5.5.3, la base de données peut prendre en charge le jeu de caractères utf4mb8 de 4 octets, et un caractère peut avoir jusqu'à 4 octets, il peut donc prendre en charge plus de jeux de caractères et peut également stocker des expressions Emoji.

  • Après MySQL 5.5.3, vous pouvez effectuer une mise à niveau transparente vers le jeu de caractères utf8mb4.
  • En même temps, utf8mb4 est compatible avec le jeu de caractères utf8.
  • L'encodage, la position et le stockage des caractères utf8 sont en utf8mb4.
  • Identique au jeu de caractères utf8, aucun dommage aux données existantes.

En raison dephpMyAdminPour les tables nouvellement créées dans une base de données nouvellement créée, l'encodage de caractères par défaut est :Latin1

  • Cet encodage ne peut pas insérer d'expressions chinoises et Emoji ;
  • Vous devez modifier le codage du jeu de caractères du jeu de caractères et de la table de la base de données en utf8mb4 ;
  • Ensuite, redémarrez MySQL, vous pouvez insérer des expressions chinoises et Emoji.

Solution du problème de caractère MySQL Emoji

1 步:Modifier le fichier de configuration MySQL my.cnf

  • (Le serveur Windows est my.ini,Linux/UnixLe serveur est mon.cnf)
  • fichier my.cnf, généralement dans/etc/mysql/my.cnfposition.
  • Panneau de configuration CWPLe fichier my.cnf se trouve dans/etc/my.cnfposition.

Après l'avoir trouvé, veuillez ajouter le contenu suivant dans les trois parties suivantes ▼

[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 步:Redémarrez la base de données MySQL

service mysqld restart

Étape 3 : Vérifiez à nouveau le jeu de caractères et entrez ▼ dans la ligne de commande SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Vérifiez si les éléments suivants ▼

Comment enregistrer Emoji dans MySQL Entrez dans la base de données Problème de caractère de point d'interrogation d'expression d'Emoji

Entrez la commande SQL suivante▼

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

Vérifiez si c'est comme suit▼

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

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

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

Après avoir créé une nouvelle base de données dans phpMyAdmin, vous devezAfficher le code de la base de données ▼

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

Si l'encodage de la base de données n'est pasutf8mb4, vous devez modifier le jeu de caractères de la base de données enutf8mb4 .

Comment modifier le jeu de caractères de la base de données en utf8mb4 ?

Étape 1 : Cliquez sur le nom de la base de données actuelle dans phpMyAdmin, puis cliquez sur SQL.

Étape 2 : Entrez la commande suivante pour modifier le jeu de caractères de la base de données enutf8mb4

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

3 步:Redémarrez la base de données MySQL

service mysqld restart
  • C'est ça.

Voici quelques exemples de commandes SQL :

Remplacez le jeu de caractères par défaut et toutes les colonnes de caractères du tableau par le nouveau jeu de caractères ▼

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;

Si vous ne modifiez que le jeu de caractères par défaut du tableau▼

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

Modifier le jeu de caractères d'un champ ▼

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;

Afficher le code du tableau ▼

SHOW CREATE TABLE tbl_name;

Afficher les codes de champ ▼

SHOW FULL COLUMNS FROM tbl_name;

Afficher le code actuel de la base de données ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Le package de pilote mysql-connector-java ne prend en charge que utf5.1.13mb8 dans 4+

J'espère que le blog de Chen Weiliang ( https://www.chenweiliang.com/ ) a partagé "Comment enregistrer Emoji dans MySQL ? Entrez dans la base de données Problème de caractère de point d'interrogation de l'expression Emoji", qui vous est utile.

Bienvenue à partager le lien de cet article :https://www.chenweiliang.com/cwl-26592.html

Bienvenue sur la chaîne Telegram du blog de Chen Weiliang pour obtenir les dernières mises à jour !

🔔 Soyez le premier à obtenir le précieux « Guide d'utilisation de l'outil d'IA de marketing de contenu ChatGPT » dans le répertoire supérieur de la chaîne ! 🌟
📚 Ce guide contient une valeur énorme, 🌟C'est une opportunité rare, ne la manquez pas ! ⏰⌛💨
Partagez et likez si vous aimez !
Vos partages et likes sont notre motivation continue !

 

发表 评论

Votre adresse email ne sera pas publiée. 项 已 用 * 标注

到 顶部