Maison > base de données > tutoriel mysql > Comment résoudre les erreurs « Valeur de chaîne incorrecte » lors de l'insertion d'émojis dans une base de données MySQL en Java ?

Comment résoudre les erreurs « Valeur de chaîne incorrecte » lors de l'insertion d'émojis dans une base de données MySQL en Java ?

Patricia Arquette
Libérer: 2024-11-23 12:03:11
original
277 Les gens l'ont consulté

How to Resolve

Exception d'encodage : "Valeur de chaîne incorrecte" avec des Emojis en Java-MySQL

Dans une application Java utilisant MySQL, une exception "java. sql.SQLException : valeur de chaîne incorrecte : 'xF0x9Fx91xBDxF0x9F...'" peut être rencontrée lors de l'insertion d'une chaîne contenant personnages émoticônes. Cette erreur se produit en raison de différences dans le codage des caractères.

La valeur de chaîne en question contient "walmart obama ??", où "???" représente les emojis. Dans la base de données, la variable dans laquelle la chaîne est insérée est définie comme varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL. Cependant, la version MySQL utilisée par l'application ne prend en charge que les caractères BMP (Basic Multilingual Plan) en codage UTF-8. Les caractères Emoji, qui ne relèvent pas du BMP, ne peuvent pas être représentés correctement dans cet encodage.

Pour résoudre le problème, il est nécessaire de passer à l'encodage UTF-8mb4, qui prend en charge les caractères supplémentaires. Cela implique d'effectuer les ajustements suivants :

  1. Assurez-vous que votre serveur MySQL est en version 5.5 ou supérieure.
  2. Définissez l'encodage de la connexion MySQL sur "utf8mb4" à l'aide de la requête SET NAMES 'utf8mb4' après établir la connexion.
  3. Modifier la table de la base de données pour utiliser l'encodage UTF-8mb4 pour la colonne concernée, par exemple, var1 varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL.
  4. Utilisez Java Connector/J pour établir une connexion et assurez-vous que CharacterEncoding n'est pas explicitement défini dans la chaîne de connexion, car cela déclenchera automatiquement détection du jeu de caractères du serveur.

En faisant ces modifications, votre application sera capable de gérer correctement les caractères emoji en utilisant le codage UTF-8mb4, résolvant ainsi l'exception « Valeur de chaîne incorrecte ».

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal