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’])

posted @ 2020-12-30 15:55  无偿的回忆  阅读(175)  评论(0)    收藏  举报