recherche
MaisonApplet WeChatDéveloppement WeChatmysql 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

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Navigateur d'examen sécurisé

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

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

DVWA

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