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
Ответы
Ответ 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