robotframework 日志输出中出现中文乱码
1.在python安装目录下,在Lib/site-packages/robot/utils目录下的unic.py文件中
1).引入 json包
import json
2).把if PY2:函数替换为
if PY2: def unic(item): if isinstance(item, unicode): return item if isinstance(item, (bytes, bytearray)): try: return item.decode('ASCII') except UnicodeError: return u''.join(chr(b) if b < 128 else '\\x%x' % b for b in bytearray(item)) if isinstance(item, (list, dict, tuple)): try: item = json.dumps(item, ensure_ascii=False, encoding='utf-8') except UnicodeDecodeError: try: item = json.dumps(item, ensure_ascii=False, encoding='gbk') except: pass except: pass try: try: return unicode(item) except UnicodeError: return unic(str(item)) except: return _unrepresentable_object(item) else: def unic(item): if isinstance(item, str): return item if isinstance(item, (bytes, bytearray)): try: return item.decode('ASCII') except UnicodeError: return ''.join(chr(b) if b < 128 else '\\x%x' % b for b in item) try: return str(item) except: return _unrepresentable_object(item)
2.在python安装目录下,在\Lib\site-packages\robotide\contrib\testrunner\找到testrunnerplugin.py
修改565行,encoding[‘SYSTEM’])改为encoding[‘OUTPUT’])

浙公网安备 33010602011771号