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)