首頁 >資料庫 >mysql教程 >如何解決 Java MySQL 互動中的「java.sql.SQLException:不正確的字串值」錯誤?

如何解決 Java MySQL 互動中的「java.sql.SQLException:不正確的字串值」錯誤?

DDD
DDD原創
2024-11-24 16:39:11310瀏覽

How to Resolve

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編碼:

    • 更新MySQL資料庫:
  1. 確保您的 MySQL 版本為 5.5 或更高版本。
  2. 更改要使用的表格列「varchar(255) 字元集 utf8mb4 COLLATE utf8mb4_general_ci NOT NULL"。

    • 設定MySQL 連線:
  3. 對於與驅動程式無關的方法,執行查詢"與建立連線後設定名稱'utf8mb4'”資料庫。

如果使用 Connector/J,請在連接字串中將“characterEncoding”設定為“utf-8”,以在相容伺服器上自動偵測並使用 utf8mb4。

透過調整資料庫和連接配置以支援utf8mb4,將出現「java.sql.SQLException: In Correct string value」錯誤已解決,允許將非BMP 字元成功插入資料庫.

以上是如何解決 Java MySQL 互動中的「java.sql.SQLException:不正確的字串值」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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