溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

解決python3 HTMLTestRunner測(cè)試報(bào)告中文亂碼的問(wèn)題

發(fā)布時(shí)間:2020-09-09 16:16:23 來(lái)源:腳本之家 閱讀:124 作者:monkey7777 欄目:開發(fā)技術(shù)

使用HTMLTestRunner輸出的測(cè)試報(bào)告中,標(biāo)題和錯(cuò)誤說(shuō)明的中文亂碼。

環(huán)境:

python v3.6

HTMLTestRunner v0.8.2

定位問(wèn)題

剛開始以為是python3對(duì)HTMLTestRunner文件兼容的問(wèn)題。網(wǎng)上搜了一些解決辦法基本都是說(shuō)python2的,對(duì)比看了一下,我這邊兼容性是可以的。

接下來(lái),查看HTMLTestRunner文件輸出,倒著去找,最后問(wèn)題定位到:

self.stream.write(output)

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

其中,stream是運(yùn)行生成報(bào)告時(shí),傳的stream參數(shù),stream傳空時(shí),stream=sys.stdout,我這邊傳的是一個(gè)打開文件:

outfile = open(filename, 'w')

那么問(wèn)題就是,outfile.write(output)時(shí)中文亂碼。

解決方案

* 有兩種解決辦法 *

1、打開寫入文件時(shí)設(shè)置編碼

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

2、打開文件時(shí)未設(shè)置編碼,但寫入方式設(shè)置為'wb';并且,output字符串encode()成utf-8編碼。

以上這篇解決python3 HTMLTestRunner測(cè)試報(bào)告中文亂碼的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI