首頁 >資料庫 >mysql教程 >透過 JDBC 將 UTF-8 資料插入 MySQL 時如何修復「字串值不正確」錯誤?

透過 JDBC 將 UTF-8 資料插入 MySQL 時如何修復「字串值不正確」錯誤?

DDD
DDD原創
2024-12-30 11:59:10222瀏覽

How to Fix

透過JDBC 將UTF-8 插入MySQL 時處理不正確的字串值

嘗試使用下列指令將UTF-8 資料插入MySQL 資料庫時JDBC,您可能會遇到錯誤訊息「錯誤的字串值: 'xF0x90x8Dx83xF0x90...'" 當插入的文字包含無法用 MySQL 的 utf8 字元集表示的字元時,通常會出現此錯誤。

雖然您的連接設定包括使用Unicode(“useUnicode=true”)和UTF-8編碼(“characterEncoding=utf-8”),MySQL的utf8編碼只支援可以用以下方式表示的Unicode字符UTF-8 格式為3 個位元組。然而,導致錯誤的字元需要 4 個位元組。

解決方案:

要解決此問題,您有兩個選擇:

  • 將列編碼更改為utf8mb44 :
    如果您的MySQL版本是在5.5或在更高版本中,您可以將受影響列的列編碼從 utf8 變更為 utf8mb4。此編碼允許以 UTF-8 儲存佔用 4 個位元組的字元。
  • 修改伺服器設定:
    另外,您可能需要在 MySQL 中將伺服器屬性 character_set_server 設定為 utf8mb4設定檔。這確保 MySQL 預設支援 4 位元組 UTF-8 字元集。

請注意,通常用於與 MySQL 的 JDBC 連接的 Connector/J 預設為 3 位元組 Unicode。因此,建議將characterEncoding從連線字串中刪除,並使用character_set_server=utf8mb4設定MySQL伺服器,以允許Connector/J自動偵測UTF-8設定。

以上是透過 JDBC 將 UTF-8 資料插入 MySQL 時如何修復「字串值不正確」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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