java - 无法使用crontab在mysql数据库中插入utf-8字符来自动化程序

标签 java mysql linux utf-8 cron

我以前问过这个问题,但因为我没有收到任何指南,所以我再次问这个问题。 这是原来的问题: fail to insert non-english characters to database using crontab to run the program

我编写了一个java程序,它从UTF-8文件中读取并将其内容插入到mysql数据库中。我可以在终端中调用 jar 文件并且工作正常。之后我使用 crontab 自动运行程序,但这次只有英文字符和数字会插入到数据库中。

我的数据库编码是“utf8-general-ci”,我运行该程序的服务器是centOs 6.3。

我应该提到,我有另一个程序,它的功能与此类似,并且运行良好。

我测试了很多东西,但都没有解决问题。不知道出了什么问题。

我正在寻找解决方案或任何线索来继续解决问题。我将不胜感激任何帮助。

编辑: mysql版本是:5.1.69

这是 2 张图片。一个是我使用 crontab 运行程序时的时间,另一个是在终端中运行程序时的时间

enter image description here

enter image description here

最佳答案

我并不是这方面的真正专家,但这里什么也没有。 我认为这与 http://dev.mysql.com/doc/refman/5.6/en/alter-table.html 中记录的内容有关

你的默认字符集是latin1还是类似的?也许您将其保留为默认值,我认为它随后使用 latin1。

无论如何,我认为你必须做这样的事情:

ALTER TABLE target_table_name MODIFY latin1_text_col TEXT CHARACTER SET utf8;
ALTER TABLE target_table_name MODIFY latin1_varchar_col VARCHAR(M) CHARACTER SET utf8;

您可以通过执行以下操作找出数据库的默认字符集:

use db_name;
show variables like "character_set_database";
show variables like "collation_database";

关于java - 无法使用crontab在mysql数据库中插入utf-8字符来自动化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22219119/

相关文章:

c++ - 在 c/c++ 中使用 pthread_cond_wait 和 pthread_cond_signal 以循环方式执行多个线程

java 从 double/bigDecimal/float 转换为具有 4decimals 近似值的字符串

java - React Native android 0.19.0 如何添加节点模块依赖项?

mysql_secure_installation ERROR 2002 无法连接到本地 MySQL 服务器

php - 按日期在单独的表中显示 mySQL 数据(使用 PHP)

java - Tomcat 7.0.26 无法启动 jsvc

linux - 如何为 "git last"设置接受数字作为参数的别名?

java - 使用 Random 编写单元测试

java - JSF 修改上下文后将其放回

java - 带有 Grails 的 Vaadin