Maison >base de données >tutoriel mysql >Comment réparer « Valeur de chaîne incorrecte : problème d'encodage Emoji » dans MySQL et Java ?

Comment réparer « Valeur de chaîne incorrecte : problème d'encodage Emoji » dans MySQL et Java ?

DDD
DDDoriginal
2024-11-25 14:32:14122parcourir

How to Fix

Valeur de chaîne incorrecte : problème d'encodage Emoji

Problème :

Votre base de données MySQL rencontre un Erreur "java.sql.SQLException : valeur de chaîne incorrecte..." lorsque vous essayez d'insérer une valeur de chaîne contenant emojis.

Problème :

Le problème réside dans l'encodage des caractères emoji. Le jeu de caractères utf8 de MySQL ne prend en charge que les caractères du plan multilingue de base. Les émojis, cependant, se situent en dehors de cette plage et nécessitent un encodage plus large comme utf8mb4.

Solution :

Pour résoudre ce problème, vous devez configurer votre base de données MySQL et votre programme Java. pour prendre en charge utf8mb4 encodage :

  • MySQL :

    • Mettez à jour MySQL vers la version 5.5 ou supérieure.
    • Définissez l'encodage de connexion sur utf8mb4 en utilisant la requête : SET NAMES 'utf8mb4'.
    • Modifier la colonne de table concernée pour utiliser le jeu de caractères et le classement utf8mb4 : var1 varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci.
  • Java :

    • Assurez-vous que votre programme Java utilise la dernière version Pilote JDBC.
    • Si vous utilisez Connector/J, définissez CharacterEncoding sur utf8 et assurez-vous que la détection automatique est désactivée (characterEncoding n'est pas défini dans la chaîne de connexion).

Notes supplémentaires :

  • Vos emojis sont représentés sous forme de séquences de quatre points de code Unicode, qui ne peuvent pas être représentés sous forme de caractères uniques en Java.
  • Vous pouvez rencontrer des difficultés pour restituer ces emojis dans certains IDE et consoles de terminaux. Assurez-vous d'utiliser des polices prenant en charge ces caractères.

En implémentant ces modifications, vous pouvez prendre en charge les caractères emoji dans votre base de données MySQL et votre programme Java.

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:
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