我每天使用 crontab 自动运行一些程序。从 7 天前开始,每当我自动运行一个程序(每天凌晨 3 点)将一些字符串(包含数字和英文和非英文字母)插入到数据库中的表中时,只有数字和英文字符(ASCII 字符)插入到数据库,但在那之前它工作正常。但是当我自己运行程序时,其他字符也会插入到表格中。
另一方面,我在凌晨 2 点用 crontab 运行另一个程序,它也将一些字符串插入到同一个数据库(但不同的表),但它工作正常,所有字符(英语和非英语)都插入到数据库中。
服务器操作系统是 centOS 6.3 最小,我使用的是 MySql 数据库 5.1.61,我的数据库排序规则是:utf8-utf8_general_csi。在这两个程序中,我都使用 java 及其 jdbc 库。
我只是怀疑 crontab。我会感谢任何帮助。
编辑:
这是我制作的 crontab:
0 2 * * * java -jar file.jar arg1 arg2 arg3
4 15 * * * java -jar file3.jar arg1 arg2 args3
0 3 * * * java -jar file2.jar arg1 arg2 arg3
.在 2 点 3 点运行的程序具有相同的功能。但是在 3(file2.jar) 运行时,不会插入非英文字符。
这是我插入 DB 的部分代码:
stmt = (Statement) con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE) ;
stmt.executeUpdate("set character_set_results=utf8");
stmt.executeUpdate("set character_set_filesystem=utf8");
try
{
rs.moveToInsertRow();
rs.updateString("f1", str1);
rs.updateString("f2", str2);
rs.updateFloat("f3", fl1));
rs.insertRow();
}
catch(Exception ex)
{
}