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

Comment résoudre le problème lorsque l'insertion de données chinoises dans MySQL devient un point d'interrogation

王林
王林avant
2023-05-27 16:58:043909parcourir

mysql insère les données chinoises dans 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 ? :

Comment résoudre le problème lorsque linsertion de données chinoises dans MySQL devient un point dinterrogation

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

Comment résoudre le problème lorsque linsertion de données chinoises dans MySQL devient un point dinterrogation

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%’;

Comment résoudre le problème lorsque linsertion de données chinoises dans MySQL devient un point dinterrogation

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

Comment résoudre le problème lorsque linsertion de données chinoises dans MySQL devient un point dinterrogation

[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

Comment résoudre le problème lorsque linsertion de données chinoises dans MySQL devient un point dinterrogation

: 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

Comment résoudre le problème lorsque linsertion de données chinoises dans MySQL devient un point dinterrogation

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%&#39;;

Comment résoudre le problème lorsque linsertion de données chinoises dans MySQL devient un point dinterrogation

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

Comment résoudre le problème lorsque linsertion de données chinoises dans MySQL devient un point dinterrogation

Problemboble Solved

Chinese Les personnages stockés dans MySQL deviennent des points d'interrogation :3306/XXX?useSSL=false

Opération d'insertion :

@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

Solution

Comment résoudre le problème lorsque linsertion de données chinoises dans MySQL devient un point dinterrogationSolution : 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer