我有一个小的Java方法,可将短消息插入到MySQL数据库中。该表的默认排序规则是utf8_unicode_ci,而Java代码是:
private void insertMessageToDataBase(String lRoom, String lChatusername, String lMessage) { try { Connection con = DriverManager.getConnection("jdbc:mysql://localhost/embeddedChat?" + "user=site_access&password=XXXXXXX"); addMessageToDataBase = con.prepareStatement("INSERT INTO `" + lRoom + "` (username, message, action)" + " VALUES (?,?,'message');"); addMessageToDataBase.setString(1, lChatusername); addMessageToDataBase.setString(2, lMessage); addMessageToDataBase.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } }
问题是,当lMessage是希伯来语时,结果是字符串“ ??????”
顺便说一句:我不知道它是否有帮助,但是还有一个PHP脚本有时会写入此数据库中的另一个相似表,并且可以正常工作。
在代码中设置UTF-8。看到这个;
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/embeddedChat?useUnicode=true&characterEncoding=utf8");