


mysql enregistre les expressions emoji (surnom de l'utilisateur de développement WeChat ..)
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for colum n 'name' at row 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620) at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662) at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581)
Lorsque l'erreur ci-dessus est signalée, il peut s'agir du type de champ dans le code Java et du champ tapez dans la base de données Ou l'encodage ne correspond pas. Dans ce cas, unifiez simplement le format ou l'encodage.
Ici, nous introduisons principalement l'erreur d'insertion d'images emoji dans la base de données et les solutions
Lors de l'utilisation de la base de données MySQL, si le jeu de caractères est UTF-8 et en java Sur le serveur, lors du stockage des expressions emoji, l'exception ci-dessus sera levée (par exemple, lorsque WeChat se développe pour obtenir des surnoms d'utilisateurs, les surnoms de certains utilisateurs utilisent des images emoji)
Il s'agit d'une exception due à le jeu de caractères ne le prend pas en charge, car le codage UTF-8 peut être de deux, trois ou quatre octets, dont les expressions Emoji sont de quatre octets, et le codage UTF-8 de MySQL peut contenir jusqu'à trois octets, les données ne peuvent donc pas être insérées. .
Solution :
1. Résolvez-le à partir du niveau de la base de données (la version de MySQL qui prend en charge utf8mb4 est 5.5.3 et doit être mise à niveau vers une version plus récente)
Remarque :
(1. Modifier la base de données , table, jeu de caractères de colonne
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;ALTER TABLE table_name CHANGE column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
(2. Modifier le fichier de configuration mysql my.cnf (la fenêtre est my.ini)
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4'
(3. Si vous utilisez un serveur java, mettez à niveau ou assurez-vous que la version de la connexion mysql est supérieure à 5.1.13, sinon vous je ne peux toujours pas essayer utf8mb4
(4. Serveur Le fichier de configuration de la base de données de fin
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE jdbc.username=root jdbc.password=password
Si mysql -connector est mis à niveau, caractèreEncoding=utf8 peut être automatiquement reconnu. Il est utf8mb4 (compatible avec l'utf8 d'origine), et
autoReconnection (lorsque la connexion à la base de données est interrompue anormalement, se reconnectera-t-elle automatiquement ? La valeur par défaut est false) est fortement recommandée . Ignorer cet attribut peut provoquer une mise en cache.
Non lu En obtenant la dernière configuration de DB, il a été impossible d'essayer le jeu de caractères utf8mb4
2. Résolvez-le depuis l'application ;
Après avoir obtenu les données, les encoder avant de passer à l'inventaire des données :
URLEncoder.encode(nickName, "utf-8");
Décodé lors de la récupération du base de données pour l'affichage,
URLDecoder.decode(nickname, "utf-8");
Lors de la résolution du problème à partir de la couche application, il est recommandé de ne pas l'encoder directement dans les méthodes getter et setter d'objet, car la méthode setter encode le surnom lorsque l'objet est placé, ce qui équivaut à une fois inséré dans la base de données. Appelez la méthode getter à partir de l'objet pour extraire votre référence. Cela décodera le surnom codé par le setter, ce qui signifie. que le problème ci-dessus se produira toujours.
Plus de mysql enregistre les expressions emoji. (pseudonyme de l'utilisateur de développement WeChat..) Pour les articles connexes, veuillez faire attention au site Web PHP chinois

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel
