1. 程式人生 > >linux crontab執行指令碼中文亂碼問題

linux crontab執行指令碼中文亂碼問題

在linux中寫了個定時指令碼,其中包含中文字元。指令碼手動執行一切正常,但是使用crontab執行後發現日誌中應該出現中文的地方全是???等亂碼。

分析出原因肯定是環境變數的問題。因為Unix/Linux下使用crontab時的執行環境已經不是使用者環境了,因此原本使用者下的一些環境變數的設定就失效了。例如原來使用者環境變數設定的是GB2312,但是使用crontab執行時的環境變數就可能是ISO8859-1。

所以解決辦法只需要在指令碼最前面加上當前環境的lang環境即可。即先獲取當前語言環境,echo $LANG,例如輸出en_US.UTF-8,然後在指令碼最前面增加一行export LANG=en_US.UTF-8 。