Maison >base de données >tutoriel mysql >Parlons de la solution aux données tronquées importées dans MySQL
MySQL est un système de gestion de bases de données relationnelles open source largement utilisé dans diverses applications Internet. Les données stockées dans la base de données peuvent parfois impliquer du chinois, c'est pourquoi des caractères tronqués sont souvent rencontrés lors de l'importation de données. Cet article présentera la solution à l'importation de données MySQL tronquées.
1. Analyse des causes
Dans MySQL, si le jeu de caractères de la base de données et le jeu de caractères de la table de données ne sont pas cohérents, les données importées seront tronquées. Par conséquent, avant d'importer des données, vous devez vérifier soigneusement si les jeux de caractères de la base de données et de la table de données sont cohérents. S'il est incohérent, il doit être modifié.
2. Modifier le jeu de caractères
Tout d'abord, vous devez vous connecter à la base de données MySQL, entrer dans la base de données et exécuter la commande suivante :
SHOW CREATE DATABASE `database_name`;
Ensuite, vous pouvez voir le caractère set settings, comme indiqué ci-dessous :
CREATE DATABASE `database_name` /*!40100 DEFAULT CHARACTER SET utf8 */
L'utf8 ici est le jeu de caractères de la base de données MySQL. Si vous devez modifier le jeu de caractères, vous pouvez exécuter l'instruction suivante :
ALTER DATABASE `database_name` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
L'utf8mb4 ici est le même que l'utf8. , mais il prend en charge davantage de jeux de caractères. Il est recommandé d'utiliser utf8mb4.
Si le jeu de caractères de la base de données a été modifié, mais que des caractères tronqués apparaissent toujours lors de l'importation de données, il est probable que le jeu de caractères de la table de données soit incohérent avec la base de données. Vous pouvez interroger le jeu de caractères de la table de données via la commande suivante :
SHOW CREATE TABLE `table_name`;
Ensuite, vous pouvez voir les paramètres du jeu de caractères et des règles de classement, comme indiqué ci-dessous :
CREATE TABLE `table_name` ( `id` int(10) unsigned NOT NULL, `name` varchar(255) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Les CHARSET et COLLATE sont ici le jeu de caractères et le classement. règles respectivement. Vous devez vous assurer qu'elles sont cohérentes avec la base de données. Le jeu de caractères est cohérent. S'il est incohérent, vous pouvez exécuter l'instruction suivante pour le modifier :
ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Remarque : la modification du jeu de caractères peut affecter les performances et l'espace de stockage de la base de données et doit être manipulée avec prudence.
3. Convertir l'encodage des données
Si des caractères tronqués apparaissent lors de l'importation de données, vous pouvez essayer de convertir l'encodage des données. Les outils de conversion courants incluent iconv et recode.
Vous pouvez utiliser iconv pour convertir l'encodage des données en encodage cible, par exemple, convertir les données encodées en GBK en encodage UTF-8 :
iconv -f GBK -t UTF-8 file.txt > file_utf-8.txt
-f signifie l'encodage d'origine, -t signifie le encodage cible, file.txt est le nom du fichier de données d'origine, file_utf-8.txt est le nom du fichier converti.
recode est similaire à iconv, vous pouvez également convertir l'encodage des données en encodage cible, par exemple, convertir les données encodées GB2312 en encodage UTF-8 :
recode gb2312..utf8 file.txt
gb2312 représente l'encodage d'origine, utf8 représente l'encodage cible, le fichier .txt est le nom du fichier de données d'origine.
Lorsque vous utilisez l'outil de conversion, vous devez faire attention à savoir si le format d'encodage du fichier source et le format d'encodage cible sont corrects, sinon les données converties seront toujours tronquées.
4. Résumé
La solution à l'importation de données MySQL tronquées comprend la modification du jeu de caractères et la conversion de l'encodage des données. Lors de la modification du jeu de caractères, vous devez vous assurer que le jeu de caractères de la base de données et celui de la table de données sont cohérents ; lors de la conversion du codage des données, vous devez faire attention à l'exactitude du codage du fichier source et du codage cible. Si aucune des méthodes ci-dessus ne peut résoudre le problème des caractères tronqués, il peut y avoir un problème avec la source de données elle-même et vous devez vérifier si la source de données est correcte.
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!