Heim >Datenbank >MySQL-Tutorial >Wie behebt man die Ausnahme „Falscher Zeichenfolgenwert' beim Einfügen von Emojis in MySQL?

Wie behebt man die Ausnahme „Falscher Zeichenfolgenwert' beim Einfügen von Emojis in MySQL?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-07 14:36:12921Durchsuche

How to Fix

Auflösen einer Ausnahme aufgrund eines falschen Zeichenfolgenwerts beim Einfügen von Emoji

Beim Versuch, eine Zeichenfolge mit Emoji-Zeichen mithilfe von JDBC in eine MySQL-Datenbank einzufügen, kann die folgende Ausnahme auftreten:

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...'

Dieser Fehler tritt auf, weil der standardmäßige utf8-Zeichensatz von MySQL nur Zeichen innerhalb der Basic Multilingual unterstützt Flugzeug. Um dieses Problem zu beheben, müssen Sie die Unterstützung für den Zeichensatz utf8mb4 aktivieren, der utf8 erweitert, um die erweiterte Ebene abzudecken, auf der sich Emoji-Zeichen befinden.

Verbindungsinitialisierung

Setzen Sie die Verbindungskodierung sofort auf utf8mb4 nach dem Verbindungsaufbau:

DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "username", "password").prepareStatement("SET NAMES 'utf8mb4'");

Datenbank und Tabelle Änderungen

Aktualisieren Sie den Zeichensatz und die Sortierung Ihrer Datenbank und der betroffenen Tabellen auf utf8mb4:

ALTER DATABASE `database` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Java-Code

Stellen Sie sicher, dass Ihr Java-Code den Zeichensatz utf8mb4 verwendet Zeichenkodierung für Zeichenfolgen. Zum Beispiel mit Connector/J:

DriverManager.getConnection("jdbc:mysql://localhost:3306/database?characterEncoding=utf8mb4", "username", "password");
// ...
preparedStatement.setString(1, "walmart obama ?"); // Emoji characters should be supported now

Durch Befolgen dieser Schritte können Sie die Unterstützung für utf8mb4 aktivieren und die Ausnahme aufgrund falscher Zeichenfolgenwerte beim Einfügen von Emoji-Zeichen in Ihre MySQL-Datenbank beheben.

Das obige ist der detaillierte Inhalt vonWie behebt man die Ausnahme „Falscher Zeichenfolgenwert' beim Einfügen von Emojis in MySQL?. 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