我以前问过这个问题,但因为我没有收到任何指南,所以我再次问这个问题。 这是原来的问题: 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 运行程序时的时间,另一个是在终端中运行程序时的时间
最佳答案
我并不是这方面的真正专家,但这里什么也没有。 我认为这与 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/