Comment pouvez-vous définir l'encodage par défaut dans Jenkins?

J'ai un script python qui affiche des caractères non-ascii.
Il fonctionne très bien à partir de la ligne de commande (qui a LANG fr_fr.UTF-8), mais une fois que j'essaie de le lancer dans Jenkins (lancé à partir de la même coquille), il échoue dans la manière typique d'un terminal ascii:

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

J'ai essayé en les précédant l'appel du script dans la "Exécuter shell" étape de génération de la sorte:

export LANG=en_US.UTF-8

Cependant, il semble ignorer que. Mettre la suite dans mon script python:

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

Donne-moi, peu importe ce que je fais:

Encoding = ascii

Donc, il y a quelque chose qui va me permettre de force Jenkins pour utiliser l'UTF-8?

Je serais intéressé par un plus de réponse générale à cette question. Je pense que le Python hack ci-dessous ne fonctionne pas pour Python 3.x...
Si vous utilisez Jenkins pipelin utilisation pipeline { agent {label 'nodename'} environment { LC_ALL = 'en_US.UTF-8' LANG = 'en_US.UTF-8' LANGUAGE = 'en_US.UTF-8' ... }

OriginalL'auteur Karl | 2011-05-20