Maison  >  Article  >  base de données  >  Comment résoudre le problème des caractères tronqués dans MySQL

Comment résoudre le problème des caractères tronqués dans MySQL

藏色散人
藏色散人original
2020-11-02 09:59:272034parcourir

Solution aux caractères tronqués dans mysql : ouvrez d'abord le dossier serverMySQL ; puis ouvrez le fichier my.ini ; et enfin ajoutez le code "character_set_server=gbk".

Comment résoudre le problème des caractères tronqués dans MySQL

Recommandé : "Tutoriel vidéo MySQL"

Problème de texte individuel de la base de données MySQL du site Web Java

Le problème des caractères tronqués est très gênant, en particulier une très petite quantité de caractères tronqués. Ici, je voudrais partager un problème de code tronqué rencontré lors du développement personnel. J'espère que cela sera utile à tout le monde.

Méthodes/étapes

Vérifiez l'endroit où apparaissent les caractères tronqués : la réception.

Ici, l'éditeur a vérifié la page jsp frontale via l'outil Firebug du navigateur Firefox et a constaté que les données publiées étaient bien des données utf8. Il est donc exclu que des caractères tronqués soient générés lors de la transmission de données au premier plan.

Vérifiez l'emplacement où apparaissent les caractères tronqués - l'arrière-plan.

Parce que mes collègues utilisent Struts Formbean pour recevoir des données frontales, l'éditeur n'en sait pas grand-chose, j'ai donc utilisé une méthode stupide : trouver le processus de transmission de données qui génère du code tronqué et vérifier chaque méthode transmis dans le processus. Ajoutez une sortie et affichez les données de sortie en arrière-plan.

Par conséquent, ces données sont également normales.

Vérifiez l'emplacement où apparaissent les caractères tronqués - base de données MySQL.

Lorsque le front et le backend sont exclus, seule la base de données est laissée. Le problème vient alors de la base de données.

L'éditeur a d'abord enregistré directement les caractères chinois tronqués dans la base de données et a découvert qu'ils pouvaient être stockés. Dépannage des problèmes d'encodage de texte dans les tables de base de données.

Après cela, l'éditeur a fait une requête dans le logiciel outil (instruction : afficher des variables comme '%char%' ;), et le résultat est comme indiqué ci-dessous. Le problème a été immédiatement découvert : étant donné que les caractères chinois dans gb2312 ne sont pas complets, certains caractères chinois ne sont pas codés à ce moment-là, ces caractères chinois seront convertis de force en « ? ». perdu et ne peut pas être restauré.

Comment résoudre le problème des caractères tronqués dans MySQL

Explication détaillée de la raison :

Il existe en fait plusieurs procédures de conversion pour les données entrant et sortant de la base de données MySQL.

Lors de la saisie : Character_set_client à Character_set_connection à Character_set_server et stocké dans la base de données.

Lors de la suppression : la base de données est supprimée et convertie de Character_set_server en Character_set_result.

Donc tout le monde doit comprendre que les données entrant et sortant de la base de données doivent être converties par Character_set_server, donc qu'il s'agisse du caractère chinois correct à la réception ou du caractère chinois correct dans la base de données, à condition qu'il soit pas en gb2312, il sera converti en point d'interrogation.

Solution :

Solution une fois pour toutes, l'éditeur a modifié le fichier my.ini directement dans le dossier serverMySQL.

Le processus de modification est le suivant : recherchez [mysqld] puis recherchez quelques lignes plus bas pour trouver "default_character_set=utf8", et ajoutez une ligne "character_set_server=gbk" sous cette ligne.

Bien sûr, il n'est pas nécessaire d'utiliser gbk. L'éditeur a utilisé l'extension standard nationale, c'est-à-dire l'extension gbk de gb2312, juste pour être prudent.

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