Maison > base de données > tutoriel mysql > 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

王林
Libérer: 2023-05-27 16:58:04
avant
3923 Les gens l'ont consulté

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

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

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

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

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

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

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!

Étiquettes associées:
source:yisu.com
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