Подтвердить что ты не робот

UnicodeEncodeError только при работе в качестве задания 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

4b9b3361

Ответ 1

Помимо этого: это обычная проблема; как таковой, это, вероятно, дублирующий вопрос.

Кодировка по умолчанию на 2.7 - ascii.
Вам необходимо предоставить кодировку для вывода вашей программы.
Общая кодировка для использования - "utf8".

Итак, вы бы сделали:

print title.encode('utf8')

Здесь один из способов проверить кодировку по умолчанию:

import sys

sys.getdefaultencoding()
# -> 'ascii'

Ответ 2

Нет, вы можете сделать это проще. Перед тем, как выполнить этот script, просто определите PYTHONIOENCODING. Вот так:

PATH=<your path>
[email protected]
PYTHONIOENCODING=utf8

* * * * * /run/your/script