MySQL データベースに短いメッセージを挿入する小さな Java メソッドがあります。テーブルのデフォルトの照合順序は 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 スクリプトもあり、正常に動作します。