Maison > base de données > tutoriel mysql > Parlons de la solution aux données tronquées importées dans MySQL

Parlons de la solution aux données tronquées importées dans MySQL

PHPz
Libérer: 2023-04-21 11:37:53
original
2699 Les gens l'ont consulté

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

  1. Pour modifier le jeu de caractères de la base de données

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`;
Copier après la connexion

Ensuite, vous pouvez voir le caractère set settings, comme indiqué ci-dessous :

CREATE DATABASE `database_name` /*!40100 DEFAULT CHARACTER SET utf8 */
Copier après la connexion

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;
Copier après la connexion

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.

  1. Modifier le jeu de caractères de la table de données

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`;
Copier après la connexion

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;
Copier après la connexion

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;
Copier après la connexion

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.

  1. Utilisez iconv

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
Copier après la connexion

-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.

  1. Utiliser recode

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal