【发布时间】:2011-08-29 21:24:03
【问题描述】:
我有一个输出非 ascii 字符的 python 脚本。 它在命令行中运行良好(具有 LANG en_US.UTF-8),但是一旦我尝试在 Jenkins 中运行它(从同一个 shell 启动),它就会以 ascii 终端的典型方式失败:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe5' in position 37: ordinal not in range(128)
我尝试在“执行 shell”构建步骤中执行脚本调用,如下所示:
export LANG=en_US.UTF-8
但是,它似乎忽略了这一点。将以下内容放入我的 python 脚本中:
print "Encoding = %s" % sys.getdefaultencoding()
无论我做什么,都会给我这个:
Encoding = ascii
那么有什么东西可以让我强制 Jenkins 使用 UTF-8 吗?
【问题讨论】:
-
我对这个问题的更一般的答案感兴趣。我认为下面的 Python hack 不适用于 Python 3.x...
-
如果您使用 Jenkins 管道,请使用
pipeline { agent {label 'nodename'} environment { LC_ALL = 'en_US.UTF-8' LANG = 'en_US.UTF-8' LANGUAGE = 'en_US.UTF-8' ... }
标签: python encoding utf-8 ascii jenkins