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.
Setzen Sie die Verbindungskodierung sofort auf utf8mb4 nach dem Verbindungsaufbau:
DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "username", "password").prepareStatement("SET NAMES 'utf8mb4'");
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;
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!