Heim  >  Artikel  >  Datenbank  >  Wie behebe ich Fehler beim Einfügen von Emojis in eine MySQL-Datenbank in Java?

Wie behebe ich Fehler beim Einfügen von Emojis in eine MySQL-Datenbank in Java?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-23 12:03:11249Durchsuche

How to Resolve

Codierungsausnahme: „Falscher Zeichenfolgenwert“ mit Emojis in Java-MySQL

In einer Java-Anwendung, die MySQL verwendet, wurde eine Ausnahme „java. sql.SQLException: Falscher Zeichenfolgenwert: 'xF0x9Fx91xBDxF0x9F...'“ kann sein Tritt beim Einfügen einer Zeichenfolge auf, die Emoji-Zeichen enthält. Dieser Fehler tritt aufgrund von Unterschieden in der Zeichenkodierung auf.

Der betreffende Zeichenfolgenwert enthält „walmart obama ??“, wobei „???“ stellt Emojis dar. In der Datenbank ist die Variable, in die die Zeichenfolge eingefügt wird, als varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL definiert. Die von der Anwendung verwendete MySQL-Version unterstützt jedoch nur grundlegende BMP-Zeichen (Multilingual Plane) in UTF-8-Kodierung. Emoji-Zeichen, die außerhalb des BMP liegen, können in dieser Kodierung nicht richtig dargestellt werden.

Um das Problem zu beheben, muss auf die UTF-8mb4-Kodierung umgestellt werden, die zusätzliche Zeichen unterstützt. Dazu müssen folgende Anpassungen vorgenommen werden:

  1. Stellen Sie sicher, dass Ihr MySQL-Server Version 5.5 oder höher ist.
  2. Stellen Sie die MySQL-Verbindungskodierung auf „utf8mb4“ ein, indem Sie die Abfrage SET NAMES 'utf8mb4' danach verwenden Herstellen der Verbindung.
  3. Ändern Sie die Datenbanktabelle, um die UTF-8mb4-Kodierung für die betroffene Spalte zu verwenden. z. B. var1 varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL.
  4. Verwenden Sie den Java Connector/J, um eine Verbindung herzustellen und stellen Sie sicher, dass „characterEncoding“ nicht explizit in der Verbindungszeichenfolge festgelegt ist, da dies eine automatische Aktivierung auslöst. Erkennung des Zeichensatzes des Servers.

Von Wenn Sie diese Änderungen vornehmen, kann Ihre Anwendung Emoji-Zeichen mithilfe der UTF-8mb4-Kodierung ordnungsgemäß verarbeiten und die Ausnahme „Falscher Zeichenfolgenwert“ beheben.

Das obige ist der detaillierte Inhalt vonWie behebe ich Fehler beim Einfügen von Emojis in eine MySQL-Datenbank in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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