UnicodeEncodeError仅在作为cron作业运行时

时间:2012-03-29 19:48:06

标签: python unicode cron

我的程序在命令行中运行正常,但当我将其作为cron作业运行时,它会因错误而崩溃:

UnicodeEncodeError: 'ascii' codec can't encode character
u'\xa7' in position 13: ordinal not in range(128)

它在声明中崩溃了

print title

为什么只有当应用程序作为cron作业运行时才会发生这种情况?怎么能修好?

我尝试过(没有帮助):

print unicode(title)

Python是2.7

2 个答案:

答案 0 :(得分:92)

不,你可以更简单。在执行此脚本之前,只需定义PYTHONIOENCODING即可。像这样:

PATH=<your path>
MAILTO=someone@somewhere
PYTHONIOENCODING=utf8

* * * * * /run/your/script

答案 1 :(得分:4)

旁白:这是一个常见的问题;因此,这可能是一个重复的问题。

2.7上的默认编码为ascii 您需要为程序的输出提供编码 要使用的常见编码是'utf8'。

所以你要改为:

print title.encode('utf8')

以下是检查默认编码的一种方法:

import sys

sys.getdefaultencoding()
# -> 'ascii'