python3 HTMLTestRunner測試報告中文亂碼

使用HTMLTestRunner輸出的測試報告中,標題和錯誤說明的中文亂碼。
環境:
python v3.6
HTMLTestRunner v0.8.2

定位問題

剛開始以爲是python3對HTMLTestRunner文件兼容的問題。網上搜了一些解決辦法基本都是說python2的,對比看了一下,我這邊兼容性是可以的。

接下來,查看HTMLTestRunner文件輸出,倒着去找,最後問題定位到:

self.stream.write(output)

這一行,print(output)是正常輸出中文的,但是write()就是亂碼。

其中,stream是運行生成報告時,傳的stream參數,stream傳空時,stream=sys.stdout,我這邊傳的是一個打開文件:

outfile = open(filename, 'w')

那麼問題就是,outfile.write(output)時中文亂碼。

解決方案

* 有兩種解決辦法 *

1、打開寫入文件時設置編碼

outfile = open(filename, 'w', encoding='utf-8')

2、打開文件時未設置編碼,但寫入方式設置爲’wb’;並且,output字符串encode()成utf-8編碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章