首頁 >資料庫 >mysql教程 >將表情符號插入 MySQL 時如何修復「字串值不正確」異常?

將表情符號插入 MySQL 時如何修復「字串值不正確」異常?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-07 14:36:12921瀏覽

How to Fix

解決插入表情符號時的錯誤字串值異常

嘗試使用JDBC 將包含表情符號字元的字串插入MySQL 資料庫時,可能會遇到以下異常:

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

出現這個錯誤是因為MySQL 預設的utf8 字元集只支援Basic範圍內的字符多語言飛機。要解決此問題,您需要啟用對 utf8mb4 字元集的支持,該支援將 utf8 擴展為覆蓋 emoji 字元所在的擴展平面。

連線初始化

立即將連線編碼設定為utf8mb4建立連線後:

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

資料庫和表格修改

將資料庫和受影響的表的字元集和排序規則更新為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代碼

確保您的 Java 程式碼使用 utf8mb4 字元集字串字元編碼。例如,使用 Connector/J:

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

按照以下步驟,您可以啟用對 utf8mb4 的支持,並解決在將表情符號字元插入 MySQL 資料庫時出現錯誤字串值的異常。

以上是將表情符號插入 MySQL 時如何修復「字串值不正確」異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn