Maison >base de données >tutoriel mysql >Caractères tronqués dans MySQL
En fait, il est relativement courant que des caractères tronqués apparaissent dans MySQL, ce qui est particulièrement important lors du traitement de textes chinois, japonais, coréens et autres. La résolution de ce type de problème nécessite certaines compétences et expériences. Certaines méthodes courantes seront présentées ci-dessous.
Dans MySQL, le jeu de caractères est très important. Si le jeu de caractères est mal défini, des caractères tronqués apparaîtront facilement. Par conséquent, lorsque vous utilisez la base de données MySQL, vous devez faire attention à la définition du jeu de caractères.
Tout d'abord, nous devons confirmer quels jeux de caractères sont pris en charge par la base de données MySQL. Nous pouvons exécuter la commande suivante pour afficher le jeu de caractères pris en charge par la base de données MySQL actuelle :
show character set;
Ensuite, nous devons confirmer quel est le jeu de caractères de la base de données. Nous pouvons exécuter la commande suivante pour vérifier :
show create database 数据库名;
Si le jeu de caractères n'est pas UTF-8, vous pouvez exécuter la commande suivante pour modifier le jeu de caractères de la base de données en UTF-8 :
alter database 数据库名 character set utf8;
Le jeu de caractères doit également être vérifié et modifié pour chaque table :
alter table 表名 convert to character set utf8;
Si les données que nous importons sont codées en UTF-8 et que le jeu de caractères de la base de données MySQL elle-même n'est pas UTF-8, les caractères tronqués seront facilement apparaissent lors de l’importation de données. Pour éviter cela, nous devons spécifier le jeu de caractères comme UTF-8 lors de l'importation de données. Vous pouvez utiliser la commande suivante pour importer :
mysql -h 主机名 -u 用户名 -p 密码 数据库名 < 文件名 --default-character-set=utf8
Garder le jeu de caractères du client MySQL cohérent avec le jeu de caractères de la base de données peut également éviter l'apparition de caractères tronqués. Vous pouvez entrer la ligne de commande et exécuter la commande suivante :
set names utf8;
Ou lors de la connexion au serveur MySQL, préciser le jeu de caractères :
mysql -h 主机名 -u 用户名 -p 密码 --default-character-set=utf8 数据库名
Sur le serveur MySQL, il faut vérifiez si le fichier de configuration my.cnf est correct. Le jeu de caractères est défini. Ce fichier de configuration contient de nombreux paramètres par défaut, tels que le jeu de caractères par défaut, etc. Si le fichier my.cnf ne définit pas le jeu de caractères correct, vous devez modifier ce fichier manuellement.
Vous devez d'abord trouver l'emplacement du fichier my.cnf, entrez la commande suivante dans la ligne de commande :
locate my.cnf
Recherchez ensuite le fichier my.cnf correspondant, ouvrez le fichier my.cnf à l'aide de n'importe quel éditeur de texte et ajoutez le contenu suivant :
[client] default-character-set=utf8 [mysqld] default-character-set=utf8 character-set-server=utf8 skip-character-set-client-handshake
5. Modifiez les champs de la table
Si aucune des méthodes ci-dessus ne peut résoudre le problème tronqué, cela signifie que les données tronquées ne peuvent pas être récupérées dans la base de données MySQL, alors vous devez envisager de modifier le jeu de caractères de les champs du tableau. Vous pouvez utiliser l'instruction SQL suivante :
ALTER TABLE 表名 CHANGE 列名 列名 VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
L'instruction SQL ci-dessus modifie une certaine colonne de type de caractère du nom de la table en jeu de caractères utf8 et définit le classement associé sur utf8_general_ci.
En général, il existe de nombreuses façons de rencontrer des caractères tronqués dans MySQL. Vous pouvez définir le jeu de caractères, spécifier le jeu de caractères lors de l'importation de données, modifier le jeu de caractères du client MySQL, modifier le fichier de configuration my.cnf et modifier la table. . Commencez par les champs et les autres aspects. J'espère que les méthodes ci-dessus pourront vous aider à résoudre le problème tronqué dans MySQL.
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!