Maison > base de données > tutoriel mysql > Comment corriger l'exception « Valeur de chaîne incorrecte » lors de l'insertion d'émojis dans MySQL ?

Comment corriger l'exception « Valeur de chaîne incorrecte » lors de l'insertion d'émojis dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-12-07 14:36:12
original
921 Les gens l'ont consulté

How to Fix

Résolution de l'exception de valeur de chaîne incorrecte lors de l'insertion d'Emoji

Lorsque vous tentez d'insérer une chaîne contenant des caractères emoji dans une base de données MySQL à l'aide de JDBC, vous pouvez rencontrer l'exception suivante :

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...'
Copier après la connexion

Cette erreur survient car le jeu de caractères utf8 par défaut de MySQL ne prend en charge que les caractères du plan multilingue de base. Pour résoudre ce problème, vous devez activer la prise en charge du jeu de caractères utf8mb4, qui étend utf8 pour couvrir le plan étendu où résident les caractères emoji.

Initialisation de la connexion

Définissez immédiatement l'encodage de la connexion sur utf8mb4. après avoir établi la connexion :

DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "username", "password").prepareStatement("SET NAMES 'utf8mb4'");
Copier après la connexion

Modifications de la base de données et des tables

Mise à jour le jeu de caractères et le classement de votre base de données et des tables concernées en utf8mb4 :

ALTER DATABASE `database` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Copier après la connexion

Code Java

Assurez-vous que votre code Java utilise le jeu de caractères utf8mb4 pour l'encodage des caractères de chaîne. Par exemple, avec Connector/J :

DriverManager.getConnection("jdbc:mysql://localhost:3306/database?characterEncoding=utf8mb4", "username", "password");
// ...
preparedStatement.setString(1, "walmart obama ?"); // Emoji characters should be supported now
Copier après la connexion

En suivant ces étapes, vous pouvez activer la prise en charge de utf8mb4 et résoudre l'exception de valeur de chaîne incorrecte lors de l'insertion de caractères emoji dans votre base de données MySQL.

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