51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 511|回复: 0

[原创] RF输出日志与控制台中文乱码如何处理?

[复制链接]

该用户从未签到

发表于 2022-11-24 15:34:48 | 显示全部楼层 |阅读模式
RobotFramewok使用过程中,遇到中文乱码问题还是很普遍的,下面就说下如何解决日志输出乱码与控制台乱码问题:


  一、日志输出乱码


  CASE如下:创建一个list,值1和值2分别是中文“测试”和“中国”。



运行后,日志输出如下:中文部分全部乱码展示:




Python2.7环境


  步骤1:


  Lib\site-packages\robot\utils目录下,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的Lib\site-packages文件夹下,新建一个sitecustomize.py文件,内容如下:


  #coding=utf8


  import sys


  reload(sys)


  sys.setdefaultencoding('utf8')


  重启RIDE后看下是否还乱码。


  Python3.7环境


  乱码还是那个乱码,按照上述方法尝试解决,竟然无效。

  参照上述步骤1:配置没用,用Python2.7下的unic.py文件替换,启动ride报错


  参照上述步骤2:新增文件后,ride启动无反应。


  最后经过各种搜索尝试,终于找到了这个方法:


  将Lib\site-packages\robotide\contrib\testrunner下testrunnerplugin.py中565行


  将SYSTEM修改为OUTPUT,位置如图所示:





修改后重启RIDE,重新执行解决了。



二、控制台乱码解决方法

  一般python安装路径存在中文文件夹的情况会出现:

  Lib\site-packages\robotide\contrib\testrunner目录下testrunner.py中将latinl修改为mbcs。


  (mbcs为多字节字符集,会根据系统自动显示为对应的语言字符集,中文系统中展示GB2312)









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-3-29 05:23 , Processed in 0.059301 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表