Maison > Article > base de données > Explication détaillée des problèmes de jeu de caractères MySQL (image)
Récemment, un ancien projet de l'entreprise devait prendre en charge les expressions emoji. Au début, je pensais qu'il s'agirait simplement de modifier les champs du tableau dans la base de données, mais de manière inattendue, cela a provoqué une série de problèmes. Résumez-le ici pour rappel.
01 MySQL Jeu de caractèresParamètres
character_set_server : jeu de caractères de fonctionnement interne par défaut
character_set_client : jeu de caractères utilisé par les données source du client
character_set_connection : jeu de caractères de la couche de connexion
character_set_results : résultat de la requête jeu de caractères
character_set_database : jeu de caractères par défaut de la base de données actuellement sélectionnée
character_set_system : jeu de caractères des métadonnées du système (noms de champs, etc.)
02 Processus de conversion du jeu de caractères dans MySQL
MySQL Server convertit les données de la requête de character_set_client
en character_set_connection
lors de la réception de la requête
convertit les données de la requête de character_set_connection
avant d'effectuer des opérations internes ; est le jeu de caractères de fonctionnement interne, et la méthode de détermination est la suivante :
Utilisez la valeur de paramètre CHARACTER SET du champ dans le tableau
. character_set_server
, en réponse à la demande. character_set_results
Fichier de configuration my.cnf
jeu de caractères par défaut : Définir la commande mysql Le jeu de caractères par défaut pour les connexions de lignecharacter-set-server : définit le jeu de caractères de fonctionnement interne du système (c'est-à-dire le caractère_set_server mentionné ci-dessus)
collation_server : définit le tri du jeu de caractères par défaut du système
. Ceci est simplement obligatoire utf8mb4
, character_set_client
et sont les mêmes, et ils sont tous character_set_connection
(Ces trois paramètres sont tous character_set_results
par défaut. Sinon, les expressions emoji ne peuvent pas être réalisées. Pour la raison, veuillez vous référer au processus de conversion du jeu de caractères). utf8mb4
utf8mb4
et autres valeurs par défaut Le type de jeu de caractères n'est pas si important, mais il est préférable de le garder cohérentcharacter_set_server
character_set_database
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!