如何通過JDBC 正確地將UTF-8 字符串插入MySQL
問題陳述:
使用JDBC 介面將UTF-8 字串插入MySQL 資料庫時,字元顯示為損壞或不可讀取的符號。
預期字串: Апарати
實際結果: ?????
初始故障排除:
<code class="java">Class.forName("com.mysql.jdbc.Driver").newInstance(); String dbPath = String.format( "jdbc:mysql://%s:%d/%s?user=%s&password=%s&characterEncoding=utf-8&" + "&useUnicode=true", ci.host, ci.port, ci.dbName, ci.user, ci.password); conn = java.sql.DriverManager.getConnection(dbPath);</code>
其他故障排除:
另外還採取了這些步驟:<code class="java">query = "set character set utf8"; stat.execute(query);</code>
解:>Java程式碼和MySQL表資料之間的差異是由於字元集不一致造成的。刪除 Java 程式碼中的字元集設定後,該問題已解決。
將Java 程式碼中使用的MySQL 命令與命令提示字元中的類似命令進行比較,發現了細微的差異:
<code class="java">String query = "insert into clt" + " (id, text) values (?, ?)";</code>
<code class="bash">mysql> insert into clt (id, text) values (12656697, "Апарати");</code>
使用 JDBC 介面將 UTF-8 字串插入 MySQL 時,必須確保 Java 程式碼與資料庫設定之間的字元集設定保持一致。這確保了字串被正確處理並儲存在資料庫中。
以上是為什麼使用 JDBC 插入 MySQL 時我的 UTF-8 字串顯示為損壞的字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!