今儿写脚本的时候发生了一件很诡异的事儿,一个脚本手动执行可以正常用邮件发送中文,放在crontab下就没戏。最诡异的是,放在我ubuntu上就没事儿,在centos下就不行。经过一番gg,原来问题出在系统字符集上。我ubuntu的字符集是zh_cn但是服务器是en_us,所以shell在读变量的时候字符集会变成unkonw。

方法 echo $LANG,看看自己的字符集。然后在脚本里面加上环境变量

export LANG=你的字符集就好了