UnicodeDecodeError異常


UnicodeDecodeError異常

UnicodeDecodeError: 'utf8' codec can't decode byte 0xb2 in position 154: invalid start byte

 

 

從報錯日志找問題,很顯然不太適合去utf-8.py這里去做改動,因為這是個比較公共的庫了,那么找到前一處報錯,是在Python27\Lib\site-packages\robotide\contrib\testrunner下的testrunner.py文件的第400行pop方法里的這一句:

return result.decode('UTF-8')

那我們進入這個目錄:

D:\Python\Lib\site-packages\robotide\contrib\testrunner

Python的IDLE打開testrunner.py,其他工具最好是Python常用的IDE,避免用文本工具改的縮進有問題,如果你改完后發現報錯信息是IndentationError: unexpected indent,通常就是縮進有問題。

在源碼文件里找到這個pop函數,可以看到出錯的那行語句:

加個try catch:

 

 

注意try是和for對其的,這里的代碼如下:

try:

result = result.decode('UTF-8')

except UnicodeDecodeError:

pass

return result

主要作用就是判斷出現了UnicodeDecodeError的異常的時候,直接用pass過濾,然后不做decode,直接return result,當然如果沒有異常,那么原先的decode邏輯已經做了,所以可以解決掉前面日志不見的問題。

# (替換后,刪除testrunner.pyc文件,然后重新打開RIDE,可恢復正常。)

 


免責聲明!

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



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