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 解决了这个问题。
我正在使用 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 解决了这个问题。