Maison > Article > base de données > Comment résoudre le problème lorsque l'insertion de données chinoises dans MySQL devient un point d'interrogation
Étape 1 : Vérifiez d'abord la configuration de base de votre propre code
1 CharacterEncoding=utf-8 est-il ajouté après le fichier de configuration de la base de données Jdbc.properties, comme indiqué dans la figure. ci-dessous ? :
Si vous n'y trouvez pas, ne vous contentez pas de le regarder, additionnez-le rapidement
2 Y a-t-il un filtre d'encodage configuré dans web.xml, comme celui-ci
Sinon. , vous pouvez le découvrir vous-même, hehe , pour votre commodité, copiez-le et écrivez-le ci-dessous (n'est-ce pas très prévenant)
<!-- 配置编码过滤器 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter>
Étape 2 : Lorsque vous constatez qu'il n'y a aucun problème avec les deux fichiers ci-dessus, prenons jetez un œil à ce fichier de configuration.
1. Regardez le format d'encodage de la base de données
Connectez-vous d'abord au serveur, entrez votre base de données et connectez-vous à la commande de base de données (le nom de la base de données ci-dessous fait référence au nom de la base de données que vous avez créé). , tel que test) :
mysql -u root -p nom de la base de données
Ensuite, exécutez la commande suivante pour vérifier le format d'encodage de votre base de données
afficher les variables comme ‘char%’;
C'est latin1 qui pose problème, alors comment résoudre ce problème ? Ne vous précipitez pas pour continuer à lire.
2. Modifiez le fichier de configuration interne de mysql
Permettez-moi d'abord de préciser que le dernier package d'installation officiel de mysql téléchargé ne semble pas avoir de fichier my.ini, mais il doit y en avoir un. cnf. À ce stade, vous devez accéder à votre serveur et voir où il se trouve. Bien sûr, il se trouve généralement sous etc/ dans le répertoire racine.
Ligne de commande : vim my.cnf
[Core] Exécutez la commande i pour entrer en mode édition, ajoutez la phrase suivante sous [mysqlid], c'est-à-dire que le format d'encodage des caractères chinois est compatible
character-set-server=utf8
: commande wq Enregistrez et quittez.
3. Redémarrez MySQL et vous avez terminé
J'ai exécuté ces deux implémentations sous la corbeille dans le répertoire racine pour arrêter et démarrer
systemctl stop mysqld.service systemctl start mysqld.service
Ensuite, vous pouvez vous connecter fièrement à MySQL et exécuter la commande ci-dessus pour vérifier le format d'encodage de votre base de données
show variables like ‘char%';
N'est-ce pas une surprise Hahahaha ?
Au final, après des efforts inlassables, j'ai finalement saisi les données chinoises Hahahaha, je me suis vraiment convaincu que je voulais même me transférer de l'argent. Je peux laisser les points d'interrogation de côté.
Problemboble Solved
@Insert("INSERT INTO foods(food_name,food_taste,food_price,food_description) VALUES (#{foodName},#{foodTaste},#{foodPrice},#{foodDescription})") int insert(Food food);
Description du problème
Que deviendront les caractères chinois après avoir été enregistrés dans la base de données ? ? ? ?
Analyse des causes : Les paramètres de connexion à la base de données nécessitent un jeu de caractères SolutionSolution : Ajoutez useUnicode=true&characterEncoding=UTF-8 à la source de données
spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/XXX?useUnicode=true&characterEncoding=UTF-8&useSSL=false
wenti
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!