Maison > Article > base de données > Que dois-je faire si MySQL affiche des caractères tronqués ?
MySQL est un système de gestion de bases de données relationnelles populaire largement utilisé dans les applications Web et autres applications basées sur les données. Lors de l'utilisation de MySQL, des caractères tronqués apparaissent parfois, c'est-à-dire que les données de la base de données sont affichées sous forme de caractères tronqués ou que des caractères tronqués sont visibles dans les fichiers de données exportés depuis la base de données. Cet article explique comment résoudre le problème de MySQL affichant des caractères tronqués.
La principale cause des problèmes de code tronqué est l'inadéquation du jeu de caractères. Dans MySQL, il existe deux jeux de caractères courants : le jeu de caractères du serveur et le jeu de caractères du client. Le jeu de caractères du serveur est le jeu de caractères utilisé pour stocker et traiter les données, tandis que le jeu de caractères du client est le jeu de caractères utilisé pour l'entrée et la sortie via les connexions client.
Si le jeu de caractères du serveur et celui du client sont différents, des caractères tronqués en résulteront. Nous devons donc les vérifier et les faire correspondre. Vous pouvez définir le jeu de caractères du serveur dans le fichier de configuration MySQL my.cnf, par exemple :
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
Character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
Dans cet exemple, le jeu de caractères et le classement sont tous deux définis sur utf8mb4. Si vous n'êtes pas sûr du jeu de caractères que vous devez utiliser, il est recommandé d'utiliser utf8mb4 car il peut prendre en charge une plus large gamme de caractères, y compris les emojis.
Si les données dans la base de données existent déjà et que le jeu de caractères est défini correctement, mais que des caractères tronqués sont toujours affichés, l'encodage de la base de données doit être modifié. Il peut être modifié en suivant les étapes suivantes :
(1) Sauvegardez la base de données
Avant d'apporter des modifications, assurez-vous de sauvegarder la base de données pour éviter toute perte de données.
(2) Modifier le jeu de caractères et le classement de la table
Vous pouvez modifier le jeu de caractères et le classement de la table via l'instruction ALTER TABLE. Par exemple :
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Cela modifiera le jeu de caractères et le classement de chaque colonne de la table en utf8mb4 et utf8mb4_unicode_ci.
(3) Modifier le jeu de caractères et le classement de la base de données
Après avoir exécuté l'instruction ALTER TABLE, vous devez également modifier le jeu de caractères et le classement de la base de données. Cela peut être modifié à l'aide de l'instruction suivante :
ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Cela modifiera à la fois le jeu de caractères et le classement de la base de données en utf8mb4 et utf8mb4_unicode_ci.
(4) Réimportez les données de sauvegarde
Après avoir modifié le jeu de caractères et le classement, les données de sauvegarde doivent être réimportées dans la base de données.
Si le jeu de caractères client utilisé est incorrect, cela entraînera également des caractères tronqués. Vous pouvez modifier le jeu de caractères client en suivant les étapes suivantes :
(1) Ouvrez le client MySQL
Avant d'ouvrir le client MySQL, vous devez définir le jeu de caractères client. Vous pouvez utiliser la commande suivante pour ouvrir le client et définir le jeu de caractères :
mysql --default-character-set=utf8mb4 -u username -p
(2) Modifiez le jeu de caractères du client
Dans le client, vous Vous pouvez utiliser la commande suivante Change client charset :
SET NAMES utf8mb4
Cela changera le jeu de caractères client en utf8mb4;
Si aucune des solutions ci-dessus ne peut résoudre le problème tronqué, vous pouvez envisager les solutions suivantes :
(1) Utiliser le binaire pour stocker des données
Vous pouvez envisager d'utiliser le binaire pour stocker des données, de cette façon peut éviter le problème des jeux de caractères. Cependant, cette méthode est plus gourmande en espace de stockage et est plus complexe à mettre en œuvre.
(2) Utilisez l'outil de transcodage Unicode
Vous pouvez utiliser l'outil de transcodage Unicode pour convertir les caractères tronqués en caractères corrects. Cependant, cette méthode est moins fiable et peut entraîner des pertes de données ou des erreurs.
En bref, le problème tronqué est un problème courant dans MySQL, mais il peut être résolu en définissant le jeu de caractères correct et en modifiant l'encodage de la base de données. Si cela ne résout toujours pas le problème, vous pouvez envisager d’autres solutions. Lors de l'utilisation de MySQL, il est recommandé de comprendre et d'acquérir les connaissances liées aux jeux de caractères afin d'éviter efficacement les caractères tronqués.
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!