Как установить кодировку по умолчанию в Jenkins?

у меня есть скрипт python, который выводит символы, отличные от ascii. Он отлично работает из командной строки (которая Лэнг язык.UTF-8), но как только я пытаюсь запустить его в Дженкинсе (запущенном из той же оболочки), он терпит неудачу типичным образом терминала ascii:

UnicodeEncodeError: 'ascii' codec can't encode character u'xe5' in position 37: ordinal not in range(128)

Я попытался предшествовать вызову скрипта в шаге сборки "Execute shell" следующим образом:

export LANG=en_US.UTF-8
, это, кажется, игнорировать это. Помещая следующее в мой python сценарий:
print "Encoding = %s" % sys.getdefaultencoding()

дает мне это, независимо от того, что я делаю:

Encoding = ascii

Итак, есть что-то, что позволит мне заставить Дженкинса использовать UTF-8?

4 ответов


неважно, выяснил, как это сделать:

экспорт PYTHONIOENCODING=UTF-8


Если вы хотите установить кодировку на системном уровне в вашей установке Дженкинса, вы можете добавить ее в качестве пары ключ-значение глобальных свойств (Дженкинс -> управление Дженкинсом -> настройка системы) с name=LANG и value=<insert your locale here> (что в моем случае равно en_GB.UTF-8). Таким образом, вы избегаете установки локали для каждого задания Jenkins.


мое решение было: обновление до последней версии Дженкинсом. Кажется, последняя версия уважает настройки языкового стандарта системы. Смотри, например,этот патч может?

в любом случае, значение по умолчанию, поставляемое с Ubuntu 13.10, устарело. Удаление последней версии из их официального РЕПО debian исправило это для меня!

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Дженкинс + на + Ubuntu


export PYTHONIOENCODING=UTF-8

не работает для меня. Однако,

export LC_CTYPE=en_US.UTF-8

сделал.