Maison  >  Article  >  base de données  >  Que dois-je faire si MySQL affiche des caractères tronqués ?

Que dois-je faire si MySQL affiche des caractères tronqués ?

PHPz
PHPzoriginal
2023-04-21 11:21:511071parcourir

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.

  1. Confirmez les paramètres du jeu de caractères

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.

  1. Modifier l'encodage de la base de données

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.

  1. Modifiez le jeu de caractères client

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;

  1. Autres solutions

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn