Robot Framework 的 Evaluate returns 编码错误

Robot Framework's Evaluate returns encoding error

我正在使用 Evaluate 关键字来创建数组数组,如下所示:

${ARRAY}=   Evaluate    [['one', 'two', 'thrée']]

问题是,在 python 2 的评估之后,变量 ${ARRAY} 包含:

INFO : ${ARRAY} = [['one', 'two', 'thr\xc3\xa9e']]

问题是'é'变成了\xc3\xa9。

我的 IDE 使用的编码是 UTF-8,所以我猜它与 python 使用的默认编码有关。 当 运行 以下脚本检查 python 中使用的编码时,我得到了这个:

cmd > python
 Python 2.7.18 ... [MSC v.1500 64 bit (AMD64)] on win32
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import sys;
 >>> print(sys.stdin.encoding, sys.stdout.encoding)
 ('cp850', 'cp850')
 >>> print(sys.getdefaultencoding())
 ascii

所以我想知道我该怎么做才能解决这个问题?我发现的大多数答案都与脚本更改有关,而不是与 Robot Framework 调用启动的内容有关。

手头没有 py2 可以尝试,如果您将变量显式初始化为 unicode 怎么办:

${ARRAY}=   Evaluate    [['one', 'two', u'thrée']]

升级到 python3 解决了这个问题。