仅当作为cron作业运行时,UnicodeEncodeError [重复]

发布于 2021-01-29 15:09:27

这个问题已经在这里有了答案

在Python中管道输出stdout时设置正确的编码 (10个答案)

7年前关闭。

我的程序可以在命令行中正常运行,但是当我将其作为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

关注者
0
被浏览
81
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    旁白:这是一个普遍的问题。 因此,这可能是一个重复的问题。

    2.7的默认编码为ascii
    您需要为程序的输出提供编码。
    常用的编码是“ utf8”。

    因此,您应该改为:

    print title.encode('utf8')
    

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

    import sys
    
    sys.getdefaultencoding()
    # -> 'ascii'
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看