亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Heim WeChat-Applet WeChat-Entwicklung MySQL speichert Emoji-Ausdrücke (Spitzname des WeChat-Entwicklungsbenutzers.)

MySQL speichert Emoji-Ausdrücke (Spitzname des WeChat-Entwicklungsbenutzers.)

Feb 15, 2017 am 10:47 AM

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)

Wenn der obige Fehler gemeldet wird, kann es sich um den Feldtyp im Java-Code und das Feld handeln Geben Sie in der Datenbank ein. Oder die Kodierung stimmt nicht überein. In diesem Fall vereinheitlichen Sie einfach das Format oder die Kodierung.

Hier stellen wir haupts?chlich den Fehler beim Einfügen von Emoji-Bildern in die Datenbank und die L?sungen vor


Bei Verwendung einer MySQL-Datenbank, wenn der Zeichensatz UTF-8 ist und in Java Auf dem Server wird beim Speichern von Emoji-Ausdrücken die obige Ausnahme ausgel?st (wenn sich beispielsweise WeChat entwickelt, um Benutzer-Spitznamen zu erhalten, verwenden die Spitznamen einiger Benutzer Emoji-Bilder)

Dies ist eine Ausnahme aufgrund von Der Zeichensatz wird nicht unterstützt, da die UTF-8-Kodierung zwei, drei oder vier Bytes umfassen kann, wobei Emoji-Ausdrücke vier Bytes umfassen k?nnen und die UTF-8-Kodierung von MySQL bis zu drei Bytes umfassen kann, sodass die Daten nicht eingefügt werden k?nnen .
L?sung:
1. L?sen Sie das Problem auf Datenbankebene (MySQL unterstützt utf8mb4 Version 5.5.3+, die auf eine neuere Version aktualisiert werden muss)
Hinweis:
(1. Datenbank, Tabelle ?ndern , Spaltenzeichensatz

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. ?ndern Sie die MySQL-Konfigurationsdatei my.cnf (Fenster ist 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. Wenn Sie einen Java-Server verwenden, aktualisieren Sie oder stellen Sie sicher, dass die MySQL-Verbindungsversion h?her als 5.1.13 ist, andernfalls k?nnen Sie immer noch nicht Versuchen Sie es mit utf8mb4
(4. Serverseitige Datenbankkonfigurationsdatei

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


Wenn MySQL-Connector aktualisiert wird , CharacterEncoding=utf8 kann automatisch ersetzt werden. Identifiziert als utf8mb4 (kompatibel mit dem ursprünglichen utf8) und
autoReconnection (wird die Verbindung automatisch wiederhergestellt, wenn sie ungew?hnlich unterbrochen wird? Der Standardwert ist falsch). Es wird dringend empfohlen, dieses Attribut zu ignorieren kann zu Caching führen.
Keine Die neueste Konfiguration der Datenbank wurde gelesen, was dazu führt, dass der utf8mb4-Zeichensatz nicht ausprobiert werden kann

2. L?sen Sie das Problem von der Anwendungsebene aus
Nachdem Sie die Daten erhalten haben, führen Sie dies aus, bevor Sie mit der Dateninventur fortfahren. Kodierung:

URLEncoder.encode(nickName,?"utf-8");

Dekodiert, wenn aus der Datenbank abgerufen für Anzeige,

URLDecoder.decode(nickname,?"utf-8");

Bei der L?sung des Problems aus der Anwendungsschicht wird empfohlen, es nicht direkt in den Objekt-Getter- und Setter-Methoden zu codieren, da die Die Setter-Methode kodiert den Spitznamen, wenn das Objekt eingefügt wird, was beim Einfügen in die Datenbank ziemlich kompliziert ist. Durch Aufrufen der Getter-Methode aus dem Objekt, um Ihre Referenz zu entnehmen, wird der vom Setter kodierte Spitzname neu dekodiert, was bedeutet, dass Es wird keine Operation für den Spitznamen ausgeführt.

Weitere MySQL-Emojis (Spitzname des WeChat-Entwicklungsbenutzers) finden Sie auf der chinesischen PHP-Website

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1488
72