JDBC – 中文亂碼問題

※問題:

使用Java SDK 1.6 + Apach + MySQL

在 insert 中文字的時候會出現 ??

※解決方法:

  1. 確定phpMyAdmin管理界面首頁的文字編碼連線校對是否為 utf8_unicode_ci

    mysql-unicode.png

    在建立新資料庫的時候也要記得選 utf8_unicode_ci

    ps. 簡單測試:在phpMyAdmin中輸入帶有中文字的SQL語法(insert),如果新增進去的中文字沒有出現??,那MySQL這邊的設定就OK了。

  2. 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 – 中文亂碼問題”



  1. 發表迴響

發表迴響

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

連結到 %s





Follow

Get every new post delivered to your Inbox.