Cara Memasukkan Rentetan UTF-8 dengan betul ke dalam MySQL melalui JDBC
Pernyataan Masalah:
Apabila memasukkan rentetan UTF-8 ke dalam pangkalan data MySQL menggunakan antara muka JDBC, aksara dipaparkan sebagai simbol rosak atau tidak boleh dibaca.
Rentetan Jangkaan: Апарати
Hasil Sebenar : ???????
Penyelesaian Masalah Awal:
<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>
Penyelesaian Masalah Tambahan:
Langkah-langkah ini diambil sebagai tambahan:
Mengalih keluar baris berikut daripada kod:
<code class="java">query = "set character set utf8"; stat.execute(query);</code>
Penyelesaian:
Nampaknya punca percanggahan antara kod Java dan data jadual MySQL adalah disebabkan oleh ketidakkonsistenan set aksara. Isu ini telah diselesaikan apabila tetapan set aksara dalam kod Java telah dialih keluar.
Membandingkan arahan MySQL yang digunakan dalam kod Java dengan arahan yang serupa daripada arahan arahan, perbezaan yang ketara telah ditemui:
<code class="java">String query = "insert into clt" + " (id, text) values (?, ?)";</code>
<code class="bash">mysql> insert into clt (id, text) values (12656697, "Апарати");</code>
Atas ialah kandungan terperinci Mengapa Rentetan UTF-8 Saya Dipaparkan Sebagai Aksara Rosak Apabila Memasukkan Ke MySQL Menggunakan JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!