Maison  >  Article  >  base de données  >  Explication détaillée du problème chinois tronqué dans la base de données MySQL

Explication détaillée du problème chinois tronqué dans la base de données MySQL

小云云
小云云original
2017-12-08 13:05:491486parcourir

Cet article présente principalement des informations pertinentes pour expliquer le problème des caractères chinois tronqués dans la base de données MySQL. Les amis dans le besoin peuvent s'y référer.

Lors de l'insertion d'une donnée chinoise sous la forme de  insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员工!') dans la base de données MySQL et que des caractères tronqués apparaissent, vous pouvez utiliser l'instruction show variables like 'character%' pour afficher le jeu d'encodage pertinent de la base de données actuelle.

Comme vous pouvez le voir sur l'image ci-dessus, MySQL utilise des jeux de caractères à six endroits, à savoir : client, connexion, base de données, résultats, serveur et système. Parmi eux, liés au serveur : base de données, serveur, système (ne peut jamais être modifié, c'est utf-8 lié au client : connexion, client, résultats) ;

client

est Le jeu de caractères utilisé par le client.

connexion

est le paramètre de jeu de caractères pour la connexion au type de base de données, si le programme ne spécifie pas le type de jeu de caractères utilisé pour se connecter à la base de données, le paramètre de jeu de caractères par défaut côté serveur sera utilisé.

base de données

est une bibliothèque dans le serveur de base de données Le paramètre de jeu de caractères utilisé, s'il n'est pas spécifié lors de la création de la base de données, utilisera le paramètre de jeu de caractères spécifié lors de l'installation du serveur.

résultats

lors du retour au client du base de données Le jeu de caractères à utiliser S'il n'est pas spécifié, le jeu de caractères par défaut du serveur sera utilisé.

serveur

est le paramètre de jeu de caractères par défaut spécifié lors de l'installation du serveur.

système

est le jeu de caractères utilisé par le système de base de données mis en place.


Après avoir compris les informations ci-dessus, analysons la raison du code tronqué. Le problème réside dans le. CMD actuel Dans la fenêtre client, étant donné que l'entrée client CMD actuelle utilise le codage GBK et que le format de codage de la base de données est UTF-8, un codage incohérent entraîne des caractères tronqués. Le format de codage du client CMD actuel ne peut pas être modifié, donc l'ensemble de codage de la connexion, du client et des résultats ne peut être modifié que pour informer le serveur que les données actuellement insérées utilisent le codage GBK. Bien que la base de données du serveur utilise le codage UTF-8, il peut être reconnu. Informez le côté serveur des données codées en GBK et convertissez-les automatiquement en UTF-8 pour le stockage. Vous pouvez utiliser les instructions suivantes pour définir rapidement l'ensemble d'encodage lié au client :

  • set names gbk;

Il peut être résolu une fois le paramétrage terminé, il y a un problème de confusion lors de l'insertion ou de l'affichage des données sur le client, mais nous constaterons bientôt que cette forme de paramétrage ne sera efficace que dans la fenêtre actuelle lorsque la fenêtre est fermée et que le client CMD est rouvert. , le problème tronqué réapparaîtra ; alors, comment créer une configuration ? Il existe un fichier de configuration my.ini dans le répertoire d'installation de MySQL. En modifiant ce fichier de configuration, vous pouvez résoudre le problème tronqué une fois pour toutes. Dans ce fichier de configuration, [mysql] est lié à la configuration du client et [mysqld] est lié à la configuration du serveur. La configuration par défaut est la suivante :

  • [mysql]

  • default-character-set=utf8

  • [mysqld]

  • character-set-server=utf8

À ce stade, il vous suffit de modifier le codage par défaut caractère par défaut Remplacez -set=utf8 par default-character-set=gbk et redémarrez le service MySQL.

L'avez-vous déjà appris ? J'espère que cela pourra résoudre le besoin urgent.

Recommandations associées :

Résumé des solutions aux caractères chinois tronqués dans la base de données MySQL

Solutions aux caractères chinois tronqués en PHP connexion à la base de données MySQL_ Tutoriel PHP

Comment résoudre les caractères chinois tronqués dans la base de données MySQL La modification de l'encodage des caractères dans le fichier de configuration n'a aucun effet

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