问题
写好的python脚本,直接在命令行执行没问题,放到crontab之后却在脚本中输出中文的地方报错:
print('{} {} \u5904\u7406\u81f3 {}'.format(time.strftime('%H:%M:%S', time.localtime()), log, line_result[3]))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 27-29: ordinal not in range(128)
其中\u5904\u7406\u81f3
实际上是三个中文字符
解决
在crontab里的env命令之前前加上一行设置字符集的命令export LANG=zh_CN.UTF-8;
原理
鉴于crontab里没有tty/pts(终端)这个事实,即不会执行$H