前几个因为工作需要,要使用定时器定时启动脚本文件,以便于解决日志不正常打印问题,但是日志问题倒是解决了,却出现乱码了
今天百度了一下,结合自己的实际情况,首先,脚本里写命令echo $LANG >> test.log,使用定时器每分钟启动一下脚本,发现每分钟输出一行空
但是关闭定时器,手动执行脚本,输出的为zh_CN.gb18030,所以原因找到了,就是定时器启动的时候和用户登录的时候启动的环境变量不一样,crontab
定时启动的时候就没有执行环境变量,属于unlogin登录模式的启动,
划重点!解决办法,
在执行执行脚本的命令行之上加入以下命令
export LC_ALL=zh_CN.gb18030
export LANG=zh_CN.gb18030
再次定时执行脚本,发现已经可以有系统编码格式输入到了test.log中
至于到底加zh_CN.GBK还是加zh_CN.gb18030或者加zh_CN.uft-8,根据自己的实际情况,
用户登录以后,可以先查看一下自己编码格式,输入命令locale回车,可以查看当前用户登录的编码格式,
然后再根据自己的实际情况进行修改。