Wie legen Sie die Standard-Kodierung in Jenkins?

Habe ich ein python-script, dass die Ausgänge nicht-ascii-Zeichen.
Es funktioniert von der Kommandozeile (die hat LANG en_US.UTF-8), aber sobald ich versuche, führen Sie es in Jenkins (gestartet von der gleichen shell), schlägt es in der typischen Weise von einem ascii-terminal:

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

Habe ich versucht, vor dem script-Aufruf in der "shell Ausführen" build-Schritt wie folgt:

export LANG=en_US.UTF-8

Aber es scheint zu ignorieren, dass. Setzen Sie die folgenden in meinem python-Skript:

print "Encoding = %s" % sys.getdefaultencoding()

Gibt mir diese, egal was ich mache:

Encoding = ascii

So ist es etwas, das mir erlauben wird, zu zwingen, Jenkins UTF-8?

  • Ich wäre daran interessiert, eine Allgemeine Antwort auf diese Frage. Ich denke, dass die Python-hack unten funktioniert nicht für Python 3.x...
  • Wenn Sie mit Jenkins pipelin verwenden pipeline { agent {label 'nodename'} environment { LC_ALL = 'en_US.UTF-8' LANG = 'en_US.UTF-8' LANGUAGE = 'en_US.UTF-8' ... }
InformationsquelleAutor Karl | 2011-05-20
Schreibe einen Kommentar