RobotFramewok使用过程中,遇到中文乱码问题还是很普遍的,下面就说下如何解决日志输出乱码与控制台乱码问题:
一、日志输出乱码
CASE如下:创建一个list,值1和值2分别是中文“测试”和“中国”。
运行后,日志输出如下:中文部分全部乱码展示
Python2.7环境
步骤1:
Libsite-packages obotutils目录下,unic.py文件
增加:import json,增加以下代码
if isinstance(item, (list, dict, tuple)): try: item = json.dumps(item, ensure_ascii=False, encoding='cp936') except UnicodeDecodeError: try: item = json.dumps(item, ensure_ascii=False, encoding='cp936') except: pass except: pass
位置如图所示,cp936也可用utf-8或gbk编码格式替换。
重启RIDE后看下是否还乱码》如果还有问题继续往下进行
步骤2:
检查Python的默认编码格式:
Python命令窗口:
>>>import sys >>>sys.getdefaultencoding()
如果是Ascii,在Python的Libsite-packages文件夹下,新建一个sitecustomize.py文件,内容如下:
#coding=utf8 import sys reload(sys) sys.setdefaultencoding('utf8')
重启RIDE后看下是否还乱码
Python3.7环境
乱码还是那个乱码,按照上述方法尝试解决,竟然无效。
参照上述步骤1:配置没用,用Python2.7下的unic.py文件替换,启动ride报错
参照上述步骤2:新增文件后,ride启动无反应。
最后经过各种搜索尝试,终于找到了这个方法:
将Libsite-packages obotidecontrib estrunner下testrunnerplugin.py中565行
将SYSTEM修改为OUTPUT,位置如图所示:
修改后重启RIDE,重新执行解决了。
二、控制台乱码解决方法
一般python安装路径存在中文文件夹的情况会出现:
Libsite-packages obotidecontrib estrunner目录下testrunner.py中将latinl修改为mbcs。
(mbcs为多字节字符集,会根据系统自动显示为对应的语言字符集,中文系统中展示GB2312)