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

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

Patricia Arquette
Patricia Arquette原創
2024-12-25 21:01:16865瀏覽

How to Fix the MySQL

透過JDBC 將UTF-8 插入MySQL 時出現「錯誤字串值」錯誤進行故障排除

以下情況下可能會出現「錯誤字串值」錯誤:嘗試使用JDBC 將UTF-8 資料插入MySQL 資料庫。此錯誤通常表示字元編碼未正確配置。

問題說明

在您的情況下,您已使用以下參數設定JDBC 連線:

Connection conn = DriverManager.getConnection(url + dbName + "?useUnicode=true&characterEncoding=utf-8", userName, password);

此設定指定應使用Unicode字符,且字符編碼應為UTF-8。但是,錯誤訊息表示錯誤的字串值以“xF0”開頭,這是一個 4 位元組 UTF-8 字元。

預設情況下, MySQL的utf8編碼只允許UTF-8中3個位元組可以表示的字元。要解決此問題,您需要為 MySQL 資料庫指定 utf8mb4 編碼。此編碼支援 UTF-8 中佔用 4 個位元組的字元。

解決步驟:

  1. 使用下列指令將有問題列的資料列編碼變更為utf8mb4以下查詢:
ALTER TABLE table_name MODIFY COLUMN column_name VARCHAR(255) CHARACTER SET utf8mb4;
  1. 如果您是使用MySQL 5.5或更高版本,在MySQL設定檔中將伺服器屬性character_set_server設定為utf8mb4。
  2. 透過在連接字串中保留characterEncoding來確保Connector/J自動偵測UTF-8設定。

額外資訊:

  • 有關MySQL中Unicode字元集的更多信息,請參考MySQL官方文檔: [https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode- set.html)
  • Connector/J 也提供了有關設定UTF-8 支援的詳細說明: [https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-charset.html](https://dev.mysql.com/doc/connector-j/8.0/ en/connector-j-reference-charset.html)

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

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