【Robot Framework】日志輸出及控制台中文亂碼問題解決


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\testrunnertestrunnerplugin.py中565行

將SYSTEM修改為OUTPUT,位置如圖所示:

修改后重啟RIDE,重新執行解決了。

 

二、控制台亂碼解決方法

一般python安裝路徑存在中文文件夾的情況會出現:

Lib\site-packages\robotide\contrib\testrunner目錄下testrunner.py中將latinl修改為mbcs。

(mbcs為多字節字符集,會根據系統自動顯示為對應的語言字符集,中文系統中展示GB2312)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM