※問題:
使用Java SDK 1.6 + Apach + MySQL
在 insert 中文字的時候會出現 ??
※解決方法:
- 確定phpMyAdmin管理界面首頁的文字編碼及連線校對是否為 utf8_unicode_ci
在建立新資料庫的時候也要記得選 utf8_unicode_ci
ps. 簡單測試:在phpMyAdmin中輸入帶有中文字的SQL語法(insert),如果新增進去的中文字沒有出現??,那MySQL這邊的設定就OK了。
- Java程式碼這邊要利用 PreparedStatement ,然後用它的 setNString(parameterIndex, value) 方法,如此中文字即可正常寫入MySQL。我看Java 的API沒有看到多一個N帶表什麼,以前用MS-SQL時它是代表unicode,所以我大膽的給它試下去,就解決了。大概的程式碼如下:
String sql = “INSERT INTO user (user_name, user_gender, user_addr) VALUES(?,?,?)”;
PreparedStatement stam = conn.prepareStatement(sql);
stam.setNString(1, “張三”);
stam.setInt(2,1);
stam.setNString(3, “台中市”);
stam.executeUpdate();
0 回應 to “JDBC – 中文亂碼問題”