在linux下,利用定时脚本跑一个xx.jar,把结果输出到文件中。结果里面有中文,输出到文件后,显示为乱码。测试的时候发现,手动运行jar输出正常;用shell脚本运行输出正常;当使用定时脚本去跑的时候,输出就是乱码了。
原因:因为Unix/Linux下使用crontab时的运行环境已经不是用户环境了,因此原本用户下的一些环境变量的设置就失效了。
解决方法:只需要在脚本最前面加上当前环境的lang环境即可。
具体操作:
①获取当前语言环境,在linux下输入echo $LANG,例如输出en_US.UTF-8
②在脚本最前面增加一行export LANG=en_US.UTF-8
如果还是不行的话,
就在要执行的脚本前面加上了 . /etc/profile 解决了