Как установить кодировку по умолчанию в Jenkins? - PullRequest
10 голосов
/ 20 мая 2011

У меня есть скрипт на python, который выводит не-ascii символы. Он отлично работает из командной строки (в которой есть LANG en_US.UTF-8), но как только я пытаюсь запустить его в Jenkins (запускается из той же оболочки), он завершается сбоем в обычном режиме терминала 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?

Ответы [ 6 ]

9 голосов
/ 20 мая 2011

Неважно, узнал, как это сделать:

export PYTHONIOENCODING = UTF-8

2 голосов
/ 18 марта 2015

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

1 голос
/ 08 марта 2015

export PYTHONIOENCODING=UTF-8

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

export LC_CTYPE=en_US.UTF-8

сделал.

1 голос
/ 05 ноября 2013

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

В любом случае стандартная поставка с Ubuntu 13.10 устарела. Снятие последней версии с их официального репозитория Debian исправило это для меня!

https://wiki.jenkins -ci.org / display / JENKINS / Установка + Jenkins + в + Ubuntu

0 голосов
/ 17 июля 2019

Другое решение заключается в использовании Python 3

brew update
brew install pyenv
pyenv install 3.7.3
pyenv local 3.7.3
make virtualenv
0 голосов
/ 28 декабря 2018

Если вы используете конвейер Jenkins, вам нужно установить кодировку в конвейере как:

pipeline {
    agent {label 'node name'}
    environment {
        LC_ALL = 'en_US.UTF-8'
        LANG    = 'en_US.UTF-8'
        LANGUAGE = 'en_US.UTF-8'
    }
    stages {
        stage ('XXXX') {
            steps {
                 echo 'Hello'
            }
         }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...