java.sql.SQLException:錯誤的字串值:解決Unicode 字元編碼問題
使用Java 和MySQL 時,資料庫操作可能會遇到與不正確的字串值相關的錯誤。其中一個錯誤是“java.sql.SQLException:錯誤的字串值”,在插入某些非標準字元時可能會出現該錯誤。
例如,插入字串「walmart obama ??」插入欄位類型為「varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL」的 MySQL 資料庫表可能會觸發上述錯誤。問題在於字元「??」的編碼,它代表超出基本多語言平面(BMP)範圍的 Unicode 代碼點。
MySQL 的預設編碼 utf8 僅支援 BMP 內的字元。為了容納 BMP 以外的字符,例如表情符號等特殊符號,需要使用 utf8mb4 編碼。
解決方案:
解決此問題,修改MySQL資料庫與連線設定支援utf8mb4編碼:
更改要使用的表格列「varchar(255) 字元集 utf8mb4 COLLATE utf8mb4_general_ci NOT NULL"。
如果使用 Connector/J,請在連接字串中將“characterEncoding”設定為“utf-8”,以在相容伺服器上自動偵測並使用 utf8mb4。
透過調整資料庫和連接配置以支援utf8mb4,將出現「java.sql.SQLException: In Correct string value」錯誤已解決,允許將非BMP 字元成功插入資料庫.以上是如何解決 Java MySQL 互動中的「java.sql.SQLException:不正確的字串值」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!